
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": 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 */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

Image * ReadCUBEImage(ImageInfo *image_info,ExceptionInfo *exception)

{
  ulong uVar1;
  float *pfVar2;
  long lVar3;
  float fVar4;
  uint uVar5;
  MagickBooleanType MVar6;
  int iVar7;
  MagickBooleanType MVar8;
  char *string;
  char *pcVar9;
  long lVar10;
  Image *pIVar11;
  size_t sVar12;
  Quantum *pQVar13;
  ulong uVar14;
  ulong uVar15;
  void *__s;
  ulong uVar16;
  long lVar17;
  size_t columns;
  long in_FS_OFFSET;
  float fVar18;
  double dVar19;
  double dVar20;
  float fVar21;
  double dVar22;
  float fVar23;
  float fVar24;
  double dVar25;
  float fVar26;
  float fVar27;
  float fVar28;
  float fVar29;
  float fVar30;
  float fVar31;
  float fVar32;
  float fVar33;
  double dVar34;
  double dVar35;
  double dVar36;
  size_t local_20a8;
  MemoryInfo *local_20a0;
  ulong local_2080;
  long local_2070;
  Image *image;
  char *q;
  char *r;
  char token [4096];
  char value [4096];
  
  lVar3 = *(long *)(in_FS_OFFSET + 0x28);
  if (image_info == (ImageInfo *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");
  }
  if (image_info->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,
                  "ReadCUBEImage");
  }
  if (image_info->debug != MagickFalse) {
    LogMagickEvent(TraceEvent,"coders/cube.c","ReadCUBEImage",0x91,"%s",image_info->filename);
  }
  if (exception == (ExceptionInfo *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");
  }
  if (exception->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"
                 );
  }
  image = AcquireImage(image_info,exception);
  MVar6 = OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
  if (MVar6 == MagickFalse) {
    DestroyImageList(image);
    pIVar11 = (Image *)0x0;
    goto LAB_0033a403;
  }
  string = AcquireString("");
  *string = '\0';
  lVar17 = 0;
  uVar15 = 0;
  local_20a0 = (MemoryInfo *)0x0;
  __s = (void *)0x0;
LAB_0033a25a:
  do {
    do {
      pcVar9 = ReadBlobString(image,string);
      if (pcVar9 == (char *)0x0) goto LAB_0033a378;
      q = string;
      GetNextToken(string,&q,0x1000,token);
    } while ((token[0] == '#') || (token[0] == '\0'));
    iVar7 = LocaleCompare(token,"LUT_1D_SIZE");
    if (((iVar7 == 0) || (iVar7 = LocaleCompare(token,"LUT_3D_SIZE"), iVar7 == 0)) &&
       (local_20a0 == (MemoryInfo *)0x0)) {
      GetNextToken(q,&q,0x1000,value);
      uVar15 = strtol(value,(char **)0x0,10);
      iVar7 = LocaleCompare(token,"LUT_1D_SIZE");
      if (iVar7 == 0) {
        dVar19 = pow((double)uVar15,DAT_00406790);
        if ((double)((ulong)dVar19 & DAT_003f9c70) < DAT_003f9c30) {
          dVar19 = (double)((ulong)((double)(-(ulong)((double)(long)dVar19 < dVar19) &
                                            (ulong)DAT_003f9608) + (double)(long)dVar19) |
                           ~DAT_003f9c70 & (ulong)dVar19);
        }
        if (DAT_003f9c40 <= dVar19) {
          uVar15 = (long)(dVar19 - DAT_003f9c40) ^ 0x8000000000000000;
        }
        else {
          uVar15 = (ulong)dVar19;
        }
      }
      if (uVar15 - 2 < 0xff) {
        local_20a0 = AcquireVirtualMemory(uVar15 * uVar15,uVar15 * 0xc);
        if (local_20a0 != (MemoryInfo *)0x0) {
          __s = GetVirtualMemoryBlob(local_20a0);
          memset(__s,0,uVar15 * 0xc * uVar15 * uVar15);
          goto LAB_0033a25a;
        }
        DestroyString(string);
        ThrowMagickException
                  (exception,"coders/cube.c","ReadCUBEImage",0xbe,ErrorException,
                   "MemoryAllocationFailed","`%s\'",image_info->filename);
        if (image != (Image *)0x0) {
          CloseBlob(image);
          DestroyImageList(image);
        }
      }
      else {
        DestroyString(string);
        ThrowMagickException
                  (exception,"coders/cube.c","ReadCUBEImage",0xb7,CorruptImageError,
                   "ImproperImageHeader","`%s\'",image_info->filename);
        if (image != (Image *)0x0) {
          CloseBlob(image);
          DestroyImageList(image);
        }
      }
      pIVar11 = (Image *)0x0;
      goto LAB_0033a403;
    }
    iVar7 = LocaleCompare(token,"TITLE ");
    if (iVar7 == 0) {
      GetNextToken(q,&q,0x1000,value);
      SetImageProperty(image,"title",value,exception);
      goto LAB_0033a25a;
    }
    if (uVar15 != 0) {
      lVar10 = uVar15 * uVar15 * uVar15;
      if (lVar10 - lVar17 == 0 || lVar10 < lVar17) break;
      r = string;
      dVar19 = InterpretLocaleValue(string,&r);
      pfVar2 = (float *)((long)__s + lVar17 * 0xc);
      *pfVar2 = (float)dVar19;
      dVar19 = InterpretLocaleValue(r,&r);
      pfVar2[1] = (float)dVar19;
      dVar19 = InterpretLocaleValue(r,&r);
      pfVar2[2] = (float)dVar19;
      lVar17 = lVar17 + 1;
      goto LAB_0033a25a;
    }
  } while (0xd < (byte)(*string - 0x2cU));
LAB_0033a378:
  DestroyString(string);
  if (uVar15 == 0) {
    if (local_20a0 != (MemoryInfo *)0x0) {
      RelinquishVirtualMemory(local_20a0);
    }
    ThrowMagickException
              (exception,"coders/cube.c","ReadCUBEImage",0xe0,CorruptImageError,
               "ImproperImageHeader","`%s\'",image_info->filename);
    pIVar11 = image;
    if (image != (Image *)0x0) {
      CloseBlob(image);
      DestroyImageList(image);
      pIVar11 = (Image *)0x0;
    }
    goto LAB_0033a403;
  }
  local_2080 = image_info->scene;
  if (local_2080 - 2 < 0xff) {
    columns = local_2080 * local_2080;
    sVar12 = local_2080 * columns;
    image->columns = sVar12;
    image->rows = sVar12;
    MVar6 = SetImageExtent(image,sVar12,sVar12,exception);
    if (MVar6 == MagickFalse) {
LAB_0033a49e:
      RelinquishVirtualMemory(local_20a0);
      pIVar11 = DestroyImageList(image);
      goto LAB_0033a403;
    }
    if (0 < (long)columns) goto LAB_0033ab1a;
    RelinquishVirtualMemory(local_20a0);
    CloseBlob(image);
  }
  else {
    image->columns = 0x200;
    image->rows = 0x200;
    MVar6 = SetImageExtent(image,0x200,0x200,exception);
    if (MVar6 == MagickFalse) goto LAB_0033a49e;
    columns = 0x40;
    local_2080 = 8;
LAB_0033ab1a:
    local_2070 = 0;
    local_20a8 = 0;
    do {
      if (MVar6 != MagickFalse) {
        uVar16 = 0;
        do {
          MVar8 = MVar6;
          if (MVar6 != MagickFalse) {
            pQVar13 = QueueAuthenticPixels
                                (image,(uVar16 % local_2080) * columns,
                                 (uVar16 / local_2080) % columns + local_2070,columns,1,exception);
            uVar5 = DAT_0043b420;
            if (pQVar13 == (Quantum *)0x0) {
              MVar8 = MagickFalse;
            }
            else {
              dVar35 = (double)columns - DAT_003f9608;
              dVar19 = DAT_003f9c68;
              if (0.0 <= dVar35) {
                dVar19 = DAT_003f9608;
              }
              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;
              dVar36 = DAT_003f9c68;
              if (0.0 <= dVar34) {
                dVar36 = DAT_003f9608;
              }
              sVar12 = 0;
              do {
                fVar4 = _DAT_003fa400;
                if (dVar19 * dVar35 < DAT_003f9600) {
                  dVar22 = dVar19 / DAT_003f9600;
                }
                else {
                  dVar22 = DAT_003f9608 / dVar35;
                }
                dVar20 = (double)uVar15 - DAT_003f9608;
                dVar22 = (double)(long)sVar12 * dVar22 * dVar20;
                fVar26 = (float)dVar22;
                fVar23 = fVar26;
                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {
                  fVar23 = (float)(int)dVar22;
                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &
                                                          (uint)DAT_00404988)) |
                                  ~uVar5 & (uint)fVar26);
                }
                uVar1 = uVar15 - 1;
                if (DAT_00420e38 <= fVar23) {
                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;
                }
                else {
                  uVar14 = (ulong)fVar23;
                }
                fVar33 = fVar23;
                if (uVar14 != uVar1) {
                  fVar33 = fVar23 + DAT_00404988;
                }
                if (dVar36 * dVar34 < DAT_003f9600) {
                  dVar22 = dVar36 / DAT_003f9600;
                }
                else {
                  dVar22 = DAT_003f9608 / dVar34;
                }
                dVar25 = (double)(long)uVar16 * dVar22 * dVar20;
                fVar24 = (float)dVar25;
                fVar29 = fVar24;
                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {
                  fVar29 = (float)(int)dVar25;
                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &
                                                          (uint)DAT_00404988)) |
                                  ~uVar5 & (uint)fVar24);
                }
                if (DAT_00420e38 <= fVar29) {
                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;
                }
                else {
                  uVar14 = (ulong)fVar29;
                }
                fVar27 = fVar29;
                if (uVar1 != uVar14) {
                  fVar27 = fVar29 + DAT_00404988;
                }
                dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;
                fVar21 = (float)dVar20;
                fVar30 = fVar21;
                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {
                  fVar30 = (float)(int)dVar20;
                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &
                                                          (uint)DAT_00404988)) |
                                  ~uVar5 & (uint)fVar21);
                }
                if (DAT_00420e38 <= fVar30) {
                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;
                }
                else {
                  uVar14 = (ulong)fVar30;
                }
                fVar18 = fVar30;
                if (uVar1 != uVar14) {
                  fVar18 = fVar30 + DAT_00404988;
                }
                fVar31 = (float)uVar15;
                fVar28 = fVar30 * fVar31 * fVar31;
                fVar32 = fVar28 + fVar29 * fVar31;
                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);
                pQVar13[image->channel_map->offset] =
                     ((fVar26 - fVar23) *
                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *
                     _DAT_003fa400;
                pQVar13[image->channel_map[1].offset] =
                     ((fVar24 - fVar29) *
                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -
                      pfVar2[1]) + pfVar2[1]) * fVar4;
                pQVar13[image->channel_map[2].offset] =
                     ((fVar21 - fVar30) *
                      (*(float *)((long)__s +
                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +
                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;
                pQVar13 = pQVar13 + image->number_channels;
                sVar12 = sVar12 + 1;
              } while (sVar12 != columns);
              MVar8 = SyncAuthenticPixels(image,exception);
              if (MVar8 != MagickFalse) {
                MVar8 = MVar6;
              }
            }
          }
          MVar6 = MVar8;
          uVar16 = uVar16 + 1;
        } while (uVar16 != columns);
      }
      local_20a8 = local_20a8 + 1;
      local_2070 = local_2070 + local_2080;
    } while (local_20a8 != columns);
    RelinquishVirtualMemory(local_20a0);
    CloseBlob(image);
    if (MVar6 == MagickFalse) {
      pIVar11 = DestroyImageList(image);
      goto LAB_0033a403;
    }
  }
  if (0 < (long)image_info->scene) {
    lVar17 = 0;
    do {
      pIVar11 = CloneImage(image,0,0,MagickTrue,exception);
      AppendImageToList(&image,pIVar11);
      lVar17 = lVar17 + 1;
    } while (lVar17 < (long)image_info->scene);
  }
  pIVar11 = GetFirstImageInList(image);
LAB_0033a403:
  if (lVar3 == *(long *)(in_FS_OFFSET + 0x28)) {
    return pIVar11;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

long FUN_00339e3c(long param_1,long param_2)

{
  ulong uVar1;
  float *pfVar2;
  undefined4 uVar3;
  float fVar4;
  uint uVar5;
  int iVar6;
  int iVar7;
  char *pcVar8;
  long lVar9;
  undefined8 uVar10;
  ulong uVar11;
  ulong uVar12;
  ulong uVar13;
  void *__s;
  ulong uVar14;
  long lVar15;
  ulong uVar16;
  long in_FS_OFFSET;
  float fVar17;
  double dVar18;
  double dVar19;
  undefined1 auVar20 [16];
  float fVar21;
  double dVar22;
  float fVar23;
  float fVar24;
  double dVar25;
  float fVar26;
  float fVar27;
  float fVar28;
  float fVar29;
  undefined1 auVar30 [16];
  float fVar31;
  float fVar32;
  float fVar33;
  double dVar34;
  double dVar35;
  double dVar36;
  ulong local_20a8;
  long local_20a0;
  ulong local_2080;
  long local_2070;
  long local_2060;
  char *local_2058;
  char *local_2050;
  char local_2048 [4096];
  char local_1048 [4104];
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");
  }
  if (*(long *)(param_1 + 0x3278) != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,
                  "ReadCUBEImage");
  }
  if (*(int *)(param_1 + 0x3270) != 0) {
    LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270);
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");
  }
  if (*(long *)(param_2 + 0x30) != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"
                 );
  }
  local_2060 = AcquireImage(param_1,param_2);
  iVar6 = OpenBlob(param_1,local_2060,2,param_2);
  if (iVar6 == 0) {
    DestroyImageList(local_2060);
    lVar15 = 0;
    goto LAB_0033a403;
  }
  pcVar8 = (char *)AcquireString(&DAT_00473ecb);
  *pcVar8 = '\0';
  lVar15 = 0;
  uVar13 = 0;
  local_20a0 = 0;
  __s = (void *)0x0;
LAB_0033a25a:
  do {
    do {
      lVar9 = ReadBlobString(local_2060,pcVar8);
      if (lVar9 == 0) goto LAB_0033a378;
      local_2058 = pcVar8;
      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);
    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));
    iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");
    if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&
       (local_20a0 == 0)) {
      GetNextToken(local_2058,&local_2058,0x1000,local_1048);
      uVar13 = strtol(local_1048,(char **)0x0,10);
      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");
      if (iVar6 == 0) {
        dVar18 = pow((double)uVar13,DAT_00406790);
        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {
          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &
                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |
                           ~DAT_003f9c70 & (ulong)dVar18);
        }
        if (DAT_003f9c40 <= dVar18) {
          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;
        }
        else {
          uVar13 = (ulong)dVar18;
        }
      }
      if (uVar13 - 2 < 0xff) {
        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);
        if (local_20a0 != 0) {
          __s = (void *)GetVirtualMemoryBlob(local_20a0);
          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);
          goto LAB_0033a25a;
        }
        DestroyString(pcVar8);
        ThrowMagickException
                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"
                   ,param_1 + 0x2270);
        if (local_2060 != 0) {
          CloseBlob();
          DestroyImageList(local_2060);
        }
      }
      else {
        DestroyString(pcVar8);
        ThrowMagickException
                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",
                   param_1 + 0x2270);
        if (local_2060 != 0) {
          CloseBlob();
          DestroyImageList(local_2060);
        }
      }
      lVar15 = 0;
      goto LAB_0033a403;
    }
    iVar6 = LocaleCompare(local_2048,"TITLE ");
    if (iVar6 == 0) {
      GetNextToken(local_2058,&local_2058,0x1000,local_1048);
      SetImageProperty(local_2060,"title",local_1048,param_2);
      goto LAB_0033a25a;
    }
    if (uVar13 != 0) {
      lVar9 = uVar13 * uVar13 * uVar13;
      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;
      local_2050 = pcVar8;
      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);
      pfVar2 = (float *)((long)__s + lVar15 * 0xc);
      *pfVar2 = (float)dVar18;
      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);
      pfVar2[1] = (float)dVar18;
      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);
      pfVar2[2] = (float)dVar18;
      lVar15 = lVar15 + 1;
      goto LAB_0033a25a;
    }
  } while (0xd < (byte)(*pcVar8 - 0x2cU));
LAB_0033a378:
  DestroyString(pcVar8);
  if (uVar13 == 0) {
    if (local_20a0 != 0) {
      RelinquishVirtualMemory(local_20a0);
    }
    ThrowMagickException
              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",
               param_1 + 0x2270);
    lVar15 = local_2060;
    if (local_2060 != 0) {
      CloseBlob(local_2060);
      DestroyImageList(local_2060);
      lVar15 = 0;
    }
    goto LAB_0033a403;
  }
  local_2080 = *(ulong *)(param_1 + 0x38);
  if (local_2080 - 2 < 0xff) {
    uVar16 = local_2080 * local_2080;
    lVar15 = local_2080 * uVar16;
    *(long *)(local_2060 + 0x20) = lVar15;
    *(long *)(local_2060 + 0x28) = lVar15;
    iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2);
    if (iVar6 == 0) {
LAB_0033a49e:
      RelinquishVirtualMemory(local_20a0);
      lVar15 = DestroyImageList(local_2060);
      goto LAB_0033a403;
    }
    if (0 < (long)uVar16) goto LAB_0033ab1a;
    RelinquishVirtualMemory(local_20a0);
    CloseBlob(local_2060);
  }
  else {
    *(undefined8 *)(local_2060 + 0x20) = 0x200;
    *(undefined8 *)(local_2060 + 0x28) = 0x200;
    iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);
    if (iVar6 == 0) goto LAB_0033a49e;
    uVar16 = 0x40;
    local_2080 = 8;
LAB_0033ab1a:
    local_2070 = 0;
    local_20a8 = 0;
    do {
      if (iVar6 != 0) {
        uVar14 = 0;
        do {
          iVar7 = iVar6;
          if (iVar6 != 0) {
            lVar15 = QueueAuthenticPixels
                               (local_2060,(uVar14 % local_2080) * uVar16,
                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);
            uVar5 = DAT_0043b420;
            if (lVar15 == 0) {
              iVar7 = 0;
            }
            else {
              dVar35 = (double)uVar16 - DAT_003f9608;
              dVar18 = DAT_003f9c68;
              if (0.0 <= dVar35) {
                dVar18 = DAT_003f9608;
              }
              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;
              dVar36 = DAT_003f9c68;
              if (0.0 <= dVar34) {
                dVar36 = DAT_003f9608;
              }
              uVar11 = 0;
              do {
                fVar4 = _DAT_003fa400;
                if (dVar18 * dVar35 < DAT_003f9600) {
                  dVar22 = dVar18 / DAT_003f9600;
                }
                else {
                  dVar22 = DAT_003f9608 / dVar35;
                }
                dVar19 = (double)uVar13 - DAT_003f9608;
                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;
                fVar26 = (float)dVar22;
                fVar23 = fVar26;
                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {
                  fVar23 = (float)(int)dVar22;
                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &
                                                          (uint)DAT_00404988)) |
                                  ~uVar5 & (uint)fVar26);
                }
                uVar1 = uVar13 - 1;
                if (DAT_00420e38 <= fVar23) {
                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;
                }
                else {
                  uVar12 = (ulong)fVar23;
                }
                fVar33 = fVar23;
                if (uVar12 != uVar1) {
                  fVar33 = fVar23 + DAT_00404988;
                }
                if (dVar36 * dVar34 < DAT_003f9600) {
                  dVar22 = dVar36 / DAT_003f9600;
                }
                else {
                  dVar22 = DAT_003f9608 / dVar34;
                }
                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;
                fVar24 = (float)dVar25;
                fVar29 = fVar24;
                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {
                  fVar29 = (float)(int)dVar25;
                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &
                                                          (uint)DAT_00404988)) |
                                  ~uVar5 & (uint)fVar24);
                }
                if (DAT_00420e38 <= fVar29) {
                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;
                }
                else {
                  uVar12 = (ulong)fVar29;
                }
                fVar27 = fVar29;
                if (uVar1 != uVar12) {
                  fVar27 = fVar29 + DAT_00404988;
                }
                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;
                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);
                fVar21 = (float)dVar19;
                auVar20._4_4_ = uVar3;
                auVar20._0_4_ = fVar21;
                auVar20._8_8_ = 0;
                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {
                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;
                  auVar30._4_4_ = uVar3;
                  auVar30._8_8_ = 0;
                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -
                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &
                                                 (uint)DAT_00404988))) | auVar30;
                }
                fVar17 = auVar20._0_4_;
                if (DAT_00420e38 <= fVar17) {
                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;
                }
                else {
                  uVar12 = (ulong)fVar17;
                }
                if (uVar1 != uVar12) {
                  auVar20._0_4_ = fVar17 + DAT_00404988;
                }
                fVar31 = (float)uVar13;
                fVar28 = fVar17 * fVar31 * fVar31;
                fVar32 = fVar28 + fVar29 * fVar31;
                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);
                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =
                     ((fVar26 - fVar23) *
                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *
                     _DAT_003fa400;
                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =
                     ((fVar24 - fVar29) *
                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -
                      pfVar2[1]) + pfVar2[1]) * fVar4;
                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =
                     ((fVar21 - fVar17) *
                      (*(float *)((long)__s +
                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)
                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;
                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;
                uVar11 = uVar11 + 1;
              } while (uVar11 != uVar16);
              iVar7 = SyncAuthenticPixels(local_2060,param_2);
              if (iVar7 != 0) {
                iVar7 = iVar6;
              }
            }
          }
          iVar6 = iVar7;
          uVar14 = uVar14 + 1;
        } while (uVar14 != uVar16);
      }
      local_20a8 = local_20a8 + 1;
      local_2070 = local_2070 + local_2080;
    } while (local_20a8 != uVar16);
    RelinquishVirtualMemory(local_20a0);
    CloseBlob(local_2060);
    if (iVar6 == 0) {
      lVar15 = DestroyImageList(local_2060);
      goto LAB_0033a403;
    }
  }
  if (0 < *(long *)(param_1 + 0x38)) {
    lVar15 = 0;
    do {
      uVar10 = CloneImage(local_2060,0,0,1,param_2);
      AppendImageToList(&local_2060,uVar10);
      lVar15 = lVar15 + 1;
    } while (lVar15 < *(long *)(param_1 + 0x38));
  }
  lVar15 = GetFirstImageInList(local_2060);
LAB_0033a403:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return lVar15;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x2078
MOV qword ptr [RSP + 0x30],RDI
MOV qword ptr [RSP + 0x10],RSI
MOV RBX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x2068],RBX
XOR EBX,EBX
TEST RDI,RDI
JZ 0x00339f21
MOV EAX,0xabacadab
MOV RBX,qword ptr [RSP + 0x30]
CMP qword ptr [RBX + 0x3278],RAX
JNZ 0x00339f40
MOV RAX,qword ptr [RSP + 0x30]
CMP dword ptr [RAX + 0x3270],0x0
JNZ 0x00339f5f
CMP qword ptr [RSP + 0x10],0x0
JZ 0x00339f94
MOV EAX,0xabacadab
MOV RBX,qword ptr [RSP + 0x10]
CMP qword ptr [RBX + 0x30],RAX
JNZ 0x00339fb3
MOV R14,qword ptr [RSP + 0x10]
MOV RSI,R14
MOV RBX,qword ptr [RSP + 0x30]
MOV RDI,RBX
CALL 0x0014ab00
MOV qword ptr [RSP + 0x48],RAX
MOV RCX,R14
MOV EDX,0x2
MOV RSI,RAX
MOV RDI,RBX
CALL 0x0014bc60
TEST EAX,EAX
JZ 0x00339fd2
LEA RDI,[0x473ecb]
CALL 0x0014a180
MOV R12,RAX
MOV byte ptr [RAX],0x0
MOV R13D,0x0
MOV EBX,0x0
MOV qword ptr [RSP + 0x8],0x0
MOV EBP,0x0
JMP 0x0033a25a
LEA RCX,[0x43b410]
MOV EDX,0x8e
LEA RSI,[0x43b3c7]
LEA RDI,[0x3f8cf0]
CALL 0x0014a360
LEA RCX,[0x43b410]
MOV EDX,0x8f
LEA RSI,[0x43b3c7]
LEA RDI,[0x3f8d18]
CALL 0x0014a360
LEA R9,[RAX + 0x2270]
LEA R8,[0x41fe36]
MOV ECX,0x91
LEA RDX,[0x43b400]
LEA RSI,[0x43b3c7]
MOV EDI,0x8000
MOV EAX,0x0
CALL 0x0014be20
JMP 0x00339e9c
LEA RCX,[0x43b410]
MOV EDX,0x93
LEA RSI,[0x43b3c7]
LEA RDI,[0x3fa748]
CALL 0x0014a360
LEA RCX,[0x43b410]
MOV EDX,0x94
LEA RSI,[0x43b3c7]
LEA RDI,[0x3fb6a0]
CALL 0x0014a360
MOV RDI,qword ptr [RSP + 0x48]
CALL 0x0014af30
MOV EAX,0x0
JMP 0x0033a403
LEA RBX,[RSP + 0x1060]
LEA RSI,[RSP + 0x50]
MOV RCX,RBX
MOV EDX,0x1000
MOV RDI,qword ptr [RSP + 0x50]
CALL 0x0014c7e0
MOV EDX,0xa
MOV ESI,0x0
MOV RDI,RBX
CALL 0x0014bbc0
MOV RBX,RAX
LEA RDI,[RSP + 0x60]
LEA RSI,[0x43b3d5]
CALL 0x0014c220
TEST EAX,EAX
JZ 0x0033a08d
LEA RAX,[RBX + -0x2]
CMP RAX,0xfe
JA 0x0033a146
LEA R14,[RBX + RBX*0x2]
SHL R14,0x2
MOV R15,RBX
IMUL R15,RBX
MOV RSI,R14
MOV RDI,R15
CALL 0x0014b9d0
MOV qword ptr [RSP + 0x8],RAX
TEST RAX,RAX
JZ 0x0033a1b8
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0014cb50
MOV RBP,RAX
MOV RDX,R14
IMUL RDX,R15
MOV ESI,0x0
MOV RDI,RAX
CALL 0x00149d30
JMP 0x0033a25a
TEST RBX,RBX
JS 0x0033a109
PXOR XMM0,XMM0
CVTSI2SD XMM0,RBX
MOVSD XMM1,qword ptr [0x00406790]
CALL 0x0014b900
MOVAPD XMM1,XMM0
MOVSD XMM3,qword ptr [0x003f9c70]
MOVAPD XMM2,XMM0
ANDPD XMM2,XMM3
MOVSD XMM4,qword ptr [0x003f9c30]
UCOMISD XMM4,XMM2
JBE 0x0033a0f5
CVTTSD2SI RAX,XMM0
PXOR XMM2,XMM2
CVTSI2SD XMM2,RAX
CMPNLESD XMM1,XMM2
MOVSD XMM4,qword ptr [0x003f9608]
ANDPD XMM1,XMM4
ADDSD XMM1,XMM2
ANDNPD XMM3,XMM0
ORPD XMM1,XMM3
UCOMISD XMM1,qword ptr [0x003f9c40]
JNC 0x0033a127
CVTTSD2SI RBX,XMM1
JMP 0x0033a02f
MOV RAX,RBX
SHR RAX,0x1
AND EBX,0x1
OR RAX,RBX
PXOR XMM0,XMM0
CVTSI2SD XMM0,RAX
ADDSD XMM0,XMM0
JMP 0x0033a09b
SUBSD XMM1,qword ptr [0x003f9c40]
CVTTSD2SI RBX,XMM1
MOV RAX,-0x8000000000000000
XOR RBX,RAX
JMP 0x0033a02f
MOV RDI,R12
CALL 0x0014c570
MOV RAX,qword ptr [RSP + 0x30]
ADD RAX,0x2270
PUSH RAX
LEA RAX,[0x3fcd40]
PUSH RAX
LEA R9,[0x43a10c]
MOV R8D,0x1a9
MOV ECX,0xb7
LEA RDX,[0x43b400]
LEA RSI,[0x43b3c7]
MOV RDI,qword ptr [RSP + 0x20]
MOV EAX,0x0
CALL 0x0014cb70
MOV RDI,qword ptr [RSP + 0x58]
ADD RSP,0x10
TEST RDI,RDI
JZ 0x0033a1ae
CALL 0x0014a8f0
MOV RDI,qword ptr [RSP + 0x48]
CALL 0x0014af30
MOV EAX,0x0
JMP 0x0033a403
MOV RDI,R12
CALL 0x0014c570
MOV RAX,qword ptr [RSP + 0x30]
ADD RAX,0x2270
PUSH RAX
LEA RAX,[0x3fcd40]
PUSH RAX
LEA R9,[0x3f86c0]
MOV R8D,0x190
MOV ECX,0xbe
LEA RDX,[0x43b400]
LEA RSI,[0x43b3c7]
MOV RDI,qword ptr [RSP + 0x20]
MOV EAX,0x0
CALL 0x0014cb70
MOV RDI,qword ptr [RSP + 0x58]
ADD RSP,0x10
TEST RDI,RDI
JZ 0x0033a1ae
CALL 0x0014a8f0
MOV RDI,qword ptr [RSP + 0x48]
CALL 0x0014af30
JMP 0x0033a1ae
LEA R14,[RSP + 0x1060]
LEA RSI,[RSP + 0x50]
MOV RCX,R14
MOV EDX,0x1000
MOV RDI,qword ptr [RSP + 0x50]
CALL 0x0014c7e0
MOV RCX,qword ptr [RSP + 0x10]
MOV RDX,R14
LEA RSI,[0x427759]
MOV RDI,qword ptr [RSP + 0x48]
CALL 0x0014ae60
MOV RSI,R12
MOV RDI,qword ptr [RSP + 0x48]
CALL 0x0014a1a0
TEST RAX,RAX
JZ 0x0033a378
MOV qword ptr [RSP + 0x50],R12
LEA RCX,[RSP + 0x60]
LEA RSI,[RSP + 0x50]
MOV EDX,0x1000
MOV RDI,R12
CALL 0x0014c7e0
MOVZX EAX,byte ptr [RSP + 0x60]
CMP AL,0x23
JZ 0x0033a25a
TEST AL,AL
JZ 0x0033a25a
LEA RDI,[RSP + 0x60]
LEA RSI,[0x43b3d5]
CALL 0x0014c220
TEST EAX,EAX
JZ 0x0033a2c3
LEA RDI,[RSP + 0x60]
LEA RSI,[0x43b3e1]
CALL 0x0014c220
TEST EAX,EAX
JNZ 0x0033a2cf
CMP qword ptr [RSP + 0x8],0x0
JZ 0x00339fe6
LEA RDI,[RSP + 0x60]
LEA RSI,[0x43b3ed]
CALL 0x0014c220
TEST EAX,EAX
JZ 0x0033a222
TEST RBX,RBX
JZ 0x0033a368
MOV RAX,RBX
IMUL RAX,RBX
IMUL RAX,RBX
CMP RAX,R13
JLE 0x0033a378
MOV qword ptr [RSP + 0x58],R12
LEA R15,[RSP + 0x58]
MOV RSI,R15
MOV RDI,R12
CALL 0x0014a4d0
LEA RAX,[R13 + R13*0x2]
LEA R14,[RBP + RAX*0x4]
PXOR XMM7,XMM7
CVTSD2SS XMM7,XMM0
MOVSS dword ptr [R14],XMM7
MOV RSI,R15
MOV RDI,qword ptr [RSP + 0x58]
CALL 0x0014a4d0
PXOR XMM4,XMM4
CVTSD2SS XMM4,XMM0
MOVSS dword ptr [R14 + 0x4],XMM4
MOV RSI,R15
MOV RDI,qword ptr [RSP + 0x58]
CALL 0x0014a4d0
PXOR XMM6,XMM6
CVTSD2SS XMM6,XMM0
MOVSS dword ptr [R14 + 0x8],XMM6
ADD R13,0x1
JMP 0x0033a25a
MOVZX EAX,byte ptr [R12]
SUB EAX,0x2c
CMP AL,0xd
JA 0x0033a25a
MOV RDI,R12
CALL 0x0014c570
TEST RBX,RBX
JNZ 0x0033a42c
MOV RAX,qword ptr [RSP + 0x8]
TEST RAX,RAX
JZ 0x0033a39b
MOV RDI,RAX
CALL 0x0014b5f0
MOV RAX,qword ptr [RSP + 0x30]
ADD RAX,0x2270
PUSH RAX
LEA RAX,[0x3fcd40]
PUSH RAX
LEA R9,[0x43a10c]
MOV R8D,0x1a9
MOV ECX,0xe0
LEA RDX,[0x43b400]
LEA RSI,[0x43b3c7]
MOV RDI,qword ptr [RSP + 0x20]
MOV EAX,0x0
CALL 0x0014cb70
MOV RAX,qword ptr [RSP + 0x58]
ADD RSP,0x10
TEST RAX,RAX
JZ 0x0033a403
MOV RDI,RAX
CALL 0x0014a8f0
MOV RDI,qword ptr [RSP + 0x48]
CALL 0x0014af30
MOV EAX,0x0
MOV RBX,qword ptr [RSP + 0x2068]
XOR RBX,qword ptr FS:[0x28]
JNZ 0x0033ab30
ADD RSP,0x2078
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RAX,qword ptr [RSP + 0x30]
MOV R13,qword ptr [RAX + 0x38]
MOV qword ptr [RSP + 0x28],R13
LEA RAX,[R13 + -0x2]
CMP RAX,0xfe
JA 0x0033aad1
MOV RAX,R13
IMUL R13,R13
MOV RDI,qword ptr [RSP + 0x48]
IMUL RAX,R13
MOV RSI,RAX
MOV qword ptr [RDI + 0x20],RAX
MOV qword ptr [RDI + 0x28],RAX
MOV RCX,qword ptr [RSP + 0x10]
MOV RDX,RAX
CALL 0x0014b140
MOV R14D,EAX
TEST EAX,EAX
JZ 0x0033a49e
MOV R15,R13
TEST R13,R13
JG 0x0033ab1a
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0014b5f0
MOV RDI,qword ptr [RSP + 0x48]
CALL 0x0014a8f0
JMP 0x0033aa65
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0014b5f0
MOV RDI,qword ptr [RSP + 0x48]
CALL 0x0014af30
JMP 0x0033a403
MOV RDX,R13
SHR RDX,0x1
MOV RCX,R13
AND ECX,0x1
OR RDX,RCX
PXOR XMM13,XMM13
CVTSI2SD XMM13,RDX
ADDSD XMM13,XMM13
JMP 0x0033a963
MOV RCX,qword ptr [RSP + 0x28]
MOV RDX,RCX
SHR RDX,0x1
AND ECX,0x1
OR RDX,RCX
PXOR XMM12,XMM12
CVTSI2SD XMM12,RDX
ADDSD XMM12,XMM12
JMP 0x0033a9b6
MOVQ XMM1,R8
DIVSD XMM1,qword ptr [0x003f9600]
JMP 0x0033a6ff
MOV RDX,RBX
SHR RDX,0x1
MOV RDI,RBX
AND EDI,0x1
OR RDX,RDI
PXOR XMM0,XMM0
CVTSI2SD XMM0,RDX
ADDSD XMM0,XMM0
JMP 0x0033a711
SUBSS XMM1,dword ptr [0x00420e38]
CVTTSS2SI RDX,XMM1
MOV R10,-0x8000000000000000
XOR RDX,R10
JMP 0x0033a793
MOVQ XMM1,RSI
DIVSD XMM1,qword ptr [0x003f9600]
JMP 0x0033a7c6
SUBSS XMM4,dword ptr [0x00420e38]
CVTTSS2SI RDX,XMM4
MOV R10,-0x8000000000000000
XOR RDX,R10
JMP 0x0033a83c
SUBSS XMM0,dword ptr [0x00420e38]
CVTTSS2SI RDX,XMM0
MOV R10,-0x8000000000000000
XOR RDX,R10
MOVAPS XMM0,XMM5
CMP RDI,RDX
JZ 0x0033a5ac
ADDSS XMM0,dword ptr [0x00404988]
TEST RBX,RBX
JS 0x0033a8c8
PXOR XMM6,XMM6
CVTSI2SS XMM6,RBX
MULSS XMM5,XMM6
MULSS XMM5,XMM6
MULSS XMM8,XMM6
MOVAPS XMM7,XMM5
ADDSS XMM7,XMM8
MOVAPS XMM10,XMM9
ADDSS XMM10,XMM7
CVTTSS2SI RDX,XMM10
LEA RDX,[RDX + RDX*0x2]
LEA RDX,[RBP + RDX*0x4]
MOVSS XMM10,dword ptr [RDX]
MOV RDI,qword ptr [RSP + 0x48]
MOV RDI,qword ptr [RDI + 0x360]
MOV RDI,qword ptr [RDI + 0x8]
ADDSS XMM7,XMM11
CVTTSS2SI R10,XMM7
LEA R10,[R10 + R10*0x2]
MOVSS XMM7,dword ptr [RBP + R10*0x4]
SUBSS XMM7,XMM10
MULSS XMM3,XMM7
ADDSS XMM3,XMM10
MOVSS XMM7,dword ptr [0x003fa400]
MULSS XMM3,XMM7
MOVSS dword ptr [RAX + RDI*0x4],XMM3
MOVSS XMM3,dword ptr [RDX + 0x4]
MOV RDI,qword ptr [RSP + 0x48]
MOV RDI,qword ptr [RDI + 0x360]
MOV RDI,qword ptr [RDI + 0x18]
MULSS XMM4,XMM6
ADDSS XMM5,XMM4
ADDSS XMM5,XMM9
CVTTSS2SI R10,XMM5
LEA R10,[R10 + R10*0x2]
MOVSS XMM4,dword ptr [RBP + R10*0x4 + 0x4]
SUBSS XMM4,XMM3
MULSS XMM2,XMM4
ADDSS XMM2,XMM3
MULSS XMM2,XMM7
MOVSS dword ptr [RAX + RDI*0x4],XMM2
MOVSS XMM2,dword ptr [RDX + 0x8]
MOV RDX,qword ptr [RSP + 0x48]
MOV RDX,qword ptr [RDX + 0x360]
MOV RDI,qword ptr [RDX + 0x28]
MULSS XMM0,XMM6
MULSS XMM6,XMM0
ADDSS XMM8,XMM6
ADDSS XMM9,XMM8
CVTTSS2SI RDX,XMM9
LEA RDX,[RDX + RDX*0x2]
MOVSS XMM0,dword ptr [RBP + RDX*0x4 + 0x8]
SUBSS XMM0,XMM2
MULSS XMM1,XMM0
ADDSS XMM1,XMM2
MULSS XMM1,XMM7
MOVSS dword ptr [RAX + RDI*0x4],XMM1
MOV RDI,qword ptr [RSP + 0x48]
MOV RDX,qword ptr [RDI + 0x340]
LEA RAX,[RAX + RDX*0x4]
ADD RCX,0x1
CMP RCX,R15
JZ 0x0033a8e9
UCOMISD XMM13,qword ptr [0x003f9600]
JC 0x0033a4ff
MOVSD XMM1,qword ptr [0x003f9608]
DIVSD XMM1,qword ptr [RSP + 0x18]
TEST RBX,RBX
JS 0x0033a511
PXOR XMM0,XMM0
CVTSI2SD XMM0,RBX
SUBSD XMM0,qword ptr [0x003f9608]
PXOR XMM3,XMM3
CVTSI2SD XMM3,RCX
MULSD XMM3,XMM1
MULSD XMM3,XMM0
CVTSD2SS XMM3,XMM3
MOVAPS XMM1,XMM3
MOVAPS XMM2,XMM3
ANDPS XMM2,XMM12
MOVSS XMM6,dword ptr [0x0043b430]
UCOMISS XMM6,XMM2
JBE 0x0033a775
CVTTSS2SI EDX,XMM3
PXOR XMM2,XMM2
CVTSI2SS XMM2,EDX
MOVAPS XMM1,XMM2
CMPNLESS XMM1,XMM3
MOVSS XMM7,dword ptr [0x00404988]
ANDPS XMM1,XMM7
SUBSS XMM2,XMM1
MOVAPS XMM1,XMM2
MOVAPS XMM2,XMM12
ANDNPS XMM2,XMM3
ORPS XMM1,XMM2
MOVAPS XMM9,XMM1
SUBSS XMM3,XMM1
LEA RDI,[RBX + -0x1]
UCOMISS XMM1,dword ptr [0x00420e38]
JNC 0x0033a532
CVTTSS2SI RDX,XMM1
MOVAPS XMM11,XMM9
CMP RDX,RDI
JZ 0x0033a7a5
ADDSS XMM11,dword ptr [0x00404988]
MOVQ XMM7,R11
UCOMISD XMM7,qword ptr [0x003f9600]
JC 0x0033a551
MOVSD XMM1,qword ptr [0x003f9608]
DIVSD XMM1,qword ptr [RSP + 0x20]
PXOR XMM2,XMM2
CVTSI2SD XMM2,R12
MULSD XMM2,XMM1
MULSD XMM2,XMM0
CVTSD2SS XMM2,XMM2
MOVAPS XMM4,XMM2
MOVAPS XMM5,XMM2
ANDPS XMM5,XMM14
MOVSS XMM6,dword ptr [0x0043b430]
UCOMISS XMM6,XMM5
JBE 0x0033a822
CVTTSS2SI EDX,XMM2
PXOR XMM5,XMM5
CVTSI2SS XMM5,EDX
MOVAPS XMM4,XMM5
CMPNLESS XMM4,XMM2
MOVSS XMM6,dword ptr [0x00404988]
ANDPS XMM4,XMM6
SUBSS XMM5,XMM4
MOVAPS XMM4,XMM5
MOVAPS XMM5,XMM14
ANDNPS XMM5,XMM2
ORPS XMM4,XMM5
MOVAPS XMM8,XMM4
SUBSS XMM2,XMM4
UCOMISS XMM4,dword ptr [0x00420e38]
JNC 0x0033a563
CVTTSS2SI RDX,XMM4
MOVAPS XMM4,XMM8
CMP RDI,RDX
JZ 0x0033a84d
ADDSS XMM4,dword ptr [0x00404988]
PXOR XMM5,XMM5
CVTSI2SD XMM5,qword ptr [RSP]
MULSD XMM1,XMM5
MULSD XMM1,XMM0
CVTSD2SS XMM1,XMM1
MOVAPS XMM0,XMM1
MOVAPS XMM5,XMM1
ANDPS XMM5,XMM15
MOVSS XMM6,dword ptr [0x0043b430]
UCOMISS XMM6,XMM5
JBE 0x0033a8aa
CVTTSS2SI EDX,XMM1
PXOR XMM5,XMM5
CVTSI2SS XMM5,EDX
MOVAPS XMM0,XMM5
CMPNLESS XMM0,XMM1
MOVSS XMM6,dword ptr [0x00404988]
ANDPS XMM0,XMM6
SUBSS XMM5,XMM0
MOVAPS XMM0,XMM5
MOVAPS XMM5,XMM15
ANDNPS XMM5,XMM1
ORPS XMM0,XMM5
MOVAPS XMM5,XMM0
SUBSS XMM1,XMM0
UCOMISS XMM0,dword ptr [0x00420e38]
JNC 0x0033a582
CVTTSS2SI RDX,XMM0
JMP 0x0033a59c
MOV RDX,RBX
SHR RDX,0x1
MOV RDI,RBX
AND EDI,0x1
OR RDX,RDI
PXOR XMM6,XMM6
CVTSI2SS XMM6,RDX
ADDSS XMM6,XMM6
JMP 0x0033a5be
MOV RSI,qword ptr [RSP + 0x10]
CALL 0x0014be10
TEST EAX,EAX
CMOVNZ EAX,R14D
MOV R14D,EAX
ADD R12,0x1
CMP R12,R15
JZ 0x0033aa24
TEST R14D,R14D
JZ 0x0033a8fc
MOV RAX,R12
MOV EDX,0x0
DIV qword ptr [RSP + 0x28]
MOV RSI,RDX
MOV EDX,0x0
DIV R13
ADD RDX,qword ptr [RSP + 0x38]
IMUL RSI,R13
MOV R9,qword ptr [RSP + 0x10]
MOV R8D,0x1
MOV RCX,R13
MOV RDI,qword ptr [RSP + 0x48]
CALL 0x0014cb60
TEST RAX,RAX
JZ 0x0033aa19
TEST R13,R13
JS 0x0033a4b7
PXOR XMM13,XMM13
CVTSI2SD XMM13,R13
SUBSD XMM13,qword ptr [0x003f9608]
MOVSD qword ptr [RSP + 0x18],XMM13
MOVSD XMM0,qword ptr [0x003f9c68]
PXOR XMM1,XMM1
UCOMISD XMM1,XMM13
JA 0x0033a98e
MOVSD XMM0,qword ptr [0x003f9608]
MOVQ R8,XMM0
MULSD XMM0,qword ptr [RSP + 0x18]
MOVQ R9,XMM0
MOV RCX,qword ptr [RSP + 0x28]
TEST RCX,RCX
JS 0x0033a4da
PXOR XMM12,XMM12
CVTSI2SD XMM12,RCX
MULSD XMM12,XMM12
SUBSD XMM12,qword ptr [0x003f9608]
MOVSD qword ptr [RSP + 0x20],XMM12
MOVSD XMM13,qword ptr [0x003f9c68]
PXOR XMM1,XMM1
UCOMISD XMM1,XMM12
JA 0x0033a9e8
MOVSD XMM13,qword ptr [0x003f9608]
MOVQ RSI,XMM13
MULSD XMM13,qword ptr [RSP + 0x20]
MOV ECX,0x0
MOVSS XMM12,dword ptr [0x0043b420]
MOVAPS XMM14,XMM12
MOVAPS XMM15,XMM12
MOVQ R11,XMM13
MOVQ XMM13,R9
JMP 0x0033a6e2
MOV R14D,0x0
JMP 0x0033a8fc
ADD qword ptr [RSP],0x1
MOV RAX,qword ptr [RSP]
MOV RSI,qword ptr [RSP + 0x28]
ADD qword ptr [RSP + 0x38],RSI
CMP RAX,R15
JZ 0x0033aa4c
TEST R14D,R14D
JZ 0x0033aa24
MOV R12D,0x0
JMP 0x0033a909
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0014b5f0
MOV RDI,qword ptr [RSP + 0x48]
CALL 0x0014a8f0
TEST R14D,R14D
JZ 0x0033aac2
MOV R12,qword ptr [RSP + 0x30]
CMP qword ptr [R12 + 0x38],0x0
JLE 0x0033aab3
MOV EBX,0x0
LEA RBP,[RSP + 0x48]
MOV R13,qword ptr [RSP + 0x10]
MOV R8,R13
MOV ECX,0x1
MOV EDX,0x0
MOV ESI,0x0
MOV RDI,qword ptr [RSP + 0x48]
CALL 0x0014a0f0
MOV RSI,RAX
MOV RDI,RBP
CALL 0x00149f50
ADD RBX,0x1
CMP qword ptr [R12 + 0x38],RBX
JG 0x0033aa81
MOV RDI,qword ptr [RSP + 0x48]
CALL 0x0014b2b0
JMP 0x0033a403
MOV RDI,qword ptr [RSP + 0x48]
CALL 0x0014af30
JMP 0x0033a403
MOV RDI,qword ptr [RSP + 0x48]
MOV qword ptr [RDI + 0x20],0x200
MOV qword ptr [RDI + 0x28],0x200
MOV RCX,qword ptr [RSP + 0x10]
MOV EDX,0x200
MOV ESI,0x200
CALL 0x0014b140
MOV R14D,EAX
TEST EAX,EAX
JZ 0x0033a49e
MOV R15D,0x40
MOV qword ptr [RSP + 0x28],0x8
MOV R13D,0x40
MOV qword ptr [RSP + 0x38],0x0
MOV qword ptr [RSP],0x0
JMP 0x0033aa3c
CALL 0x0014c5c0
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nlong FUN_00339e3c(long param_1,long param_2)\n\n{\n  ulong uVar1;\n  float *pfVar2;\n  undefined4 uVar3;\n  float fVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  long lVar9;\n  undefined8 uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  void *__s;\n  ulong uVar14;\n  long lVar15;\n  ulong uVar16;\n  long in_FS_OFFSET;\n  float fVar17;\n  double dVar18;\n  double dVar19;\n  undefined1 auVar20 [16];\n  float fVar21;\n  double dVar22;\n  float fVar23;\n  float fVar24;\n  double dVar25;\n  float fVar26;\n  float fVar27;\n  float fVar28;\n  float fVar29;\n  undefined1 auVar30 [16];\n  float fVar31;\n  float fVar32;\n  float fVar33;\n  double dVar34;\n  double dVar35;\n  double dVar36;\n  ulong local_20a8;\n  long local_20a0;\n  ulong local_2080;\n  long local_2070;\n  long local_2060;\n  char *local_2058;\n  char *local_2050;\n  char local_2048 [4096];\n  char local_1048 [4104];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");\n  }\n  if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");\n  }\n  if (*(int *)(param_1 + 0x3270) != 0) {\n    LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");\n  }\n  if (*(long *)(param_2 + 0x30) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );\n  }\n  local_2060 = AcquireImage(param_1,param_2);\n  iVar6 = OpenBlob(param_1,local_2060,2,param_2);\n  if (iVar6 == 0) {\n    DestroyImageList(local_2060);\n    lVar15 = 0;\n    goto LAB_0033a403;\n  }\n  pcVar8 = (char *)AcquireString(&DAT_00473ecb);\n  *pcVar8 = '\0';\n  lVar15 = 0;\n  uVar13 = 0;\n  local_20a0 = 0;\n  __s = (void *)0x0;\nLAB_0033a25a:\n  do {\n    do {\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));\n    iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n    if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }\n    iVar6 = LocaleCompare(local_2048,"TITLE ");\n    if (iVar6 == 0) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }\n    if (uVar13 != 0) {\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }\n  } while (0xd < (byte)(*pcVar8 - 0x2cU));\nLAB_0033a378:\n  DestroyString(pcVar8);\n  if (uVar13 == 0) {\n    if (local_20a0 != 0) {\n      RelinquishVirtualMemory(local_20a0);\n    }\n    ThrowMagickException\n              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270);\n    lVar15 = local_2060;\n    if (local_2060 != 0) {\n      CloseBlob(local_2060);\n      DestroyImageList(local_2060);\n      lVar15 = 0;\n    }\n    goto LAB_0033a403;\n  }\n  local_2080 = *(ulong *)(param_1 + 0x38);\n  if (local_2080 - 2 < 0xff) {\n    uVar16 = local_2080 * local_2080;\n    lVar15 = local_2080 * uVar16;\n    *(long *)(local_2060 + 0x20) = lVar15;\n    *(long *)(local_2060 + 0x28) = lVar15;\n    iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2);\n    if (iVar6 == 0) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n    if (0 < (long)uVar16) goto LAB_0033ab1a;\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n  }\n  else {\n    *(undefined8 *)(local_2060 + 0x20) = 0x200;\n    *(undefined8 *)(local_2060 + 0x28) = 0x200;\n    iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);\n    if (iVar6 == 0) goto LAB_0033a49e;\n    uVar16 = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != uVar16);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n    if (iVar6 == 0) {\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n  }\n  if (0 < *(long *)(param_1 + 0x38)) {\n    lVar15 = 0;\n    do {\n      uVar10 = CloneImage(local_2060,0,0,1,param_2);\n      AppendImageToList(&local_2060,uVar10);\n      lVar15 = lVar15 + 1;\n    } while (lVar15 < *(long *)(param_1 + 0x38));\n  }\n  lVar15 = GetFirstImageInList(local_2060);\nLAB_0033a403:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return lVar15;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" comment (function_definition "long FUN_00339e3c(long param_1,long param_2)\n\n{\n  ulong uVar1;\n  float *pfVar2;\n  undefined4 uVar3;\n  float fVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  long lVar9;\n  undefined8 uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  void *__s;\n  ulong uVar14;\n  long lVar15;\n  ulong uVar16;\n  long in_FS_OFFSET;\n  float fVar17;\n  double dVar18;\n  double dVar19;\n  undefined1 auVar20 [16];\n  float fVar21;\n  double dVar22;\n  float fVar23;\n  float fVar24;\n  double dVar25;\n  float fVar26;\n  float fVar27;\n  float fVar28;\n  float fVar29;\n  undefined1 auVar30 [16];\n  float fVar31;\n  float fVar32;\n  float fVar33;\n  double dVar34;\n  double dVar35;\n  double dVar36;\n  ulong local_20a8;\n  long local_20a0;\n  ulong local_2080;\n  long local_2070;\n  long local_2060;\n  char *local_2058;\n  char *local_2050;\n  char local_2048 [4096];\n  char local_1048 [4104];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");\n  }\n  if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");\n  }\n  if (*(int *)(param_1 + 0x3270) != 0) {\n    LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");\n  }\n  if (*(long *)(param_2 + 0x30) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );\n  }\n  local_2060 = AcquireImage(param_1,param_2);\n  iVar6 = OpenBlob(param_1,local_2060,2,param_2);\n  if (iVar6 == 0) {\n    DestroyImageList(local_2060);\n    lVar15 = 0;\n    goto LAB_0033a403;\n  }\n  pcVar8 = (char *)AcquireString(&DAT_00473ecb);\n  *pcVar8 = '\0';\n  lVar15 = 0;\n  uVar13 = 0;\n  local_20a0 = 0;\n  __s = (void *)0x0;\nLAB_0033a25a:\n  do {\n    do {\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));\n    iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n    if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }\n    iVar6 = LocaleCompare(local_2048,"TITLE ");\n    if (iVar6 == 0) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }\n    if (uVar13 != 0) {\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }\n  } while (0xd < (byte)(*pcVar8 - 0x2cU));\nLAB_0033a378:\n  DestroyString(pcVar8);\n  if (uVar13 == 0) {\n    if (local_20a0 != 0) {\n      RelinquishVirtualMemory(local_20a0);\n    }\n    ThrowMagickException\n              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270);\n    lVar15 = local_2060;\n    if (local_2060 != 0) {\n      CloseBlob(local_2060);\n      DestroyImageList(local_2060);\n      lVar15 = 0;\n    }\n    goto LAB_0033a403;\n  }\n  local_2080 = *(ulong *)(param_1 + 0x38);\n  if (local_2080 - 2 < 0xff) {\n    uVar16 = local_2080 * local_2080;\n    lVar15 = local_2080 * uVar16;\n    *(long *)(local_2060 + 0x20) = lVar15;\n    *(long *)(local_2060 + 0x28) = lVar15;\n    iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2);\n    if (iVar6 == 0) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n    if (0 < (long)uVar16) goto LAB_0033ab1a;\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n  }\n  else {\n    *(undefined8 *)(local_2060 + 0x20) = 0x200;\n    *(undefined8 *)(local_2060 + 0x28) = 0x200;\n    iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);\n    if (iVar6 == 0) goto LAB_0033a49e;\n    uVar16 = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != uVar16);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n    if (iVar6 == 0) {\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n  }\n  if (0 < *(long *)(param_1 + 0x38)) {\n    lVar15 = 0;\n    do {\n      uVar10 = CloneImage(local_2060,0,0,1,param_2);\n      AppendImageToList(&local_2060,uVar10);\n      lVar15 = lVar15 + 1;\n    } while (lVar15 < *(long *)(param_1 + 0x38));\n  }\n  lVar15 = GetFirstImageInList(local_2060);\nLAB_0033a403:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return lVar15;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" (sized_type_specifier "long" long) (function_declarator "FUN_00339e3c(long param_1,long param_2)" identifier (parameter_list "(long param_1,long param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  ulong uVar1;\n  float *pfVar2;\n  undefined4 uVar3;\n  float fVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  long lVar9;\n  undefined8 uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  void *__s;\n  ulong uVar14;\n  long lVar15;\n  ulong uVar16;\n  long in_FS_OFFSET;\n  float fVar17;\n  double dVar18;\n  double dVar19;\n  undefined1 auVar20 [16];\n  float fVar21;\n  double dVar22;\n  float fVar23;\n  float fVar24;\n  double dVar25;\n  float fVar26;\n  float fVar27;\n  float fVar28;\n  float fVar29;\n  undefined1 auVar30 [16];\n  float fVar31;\n  float fVar32;\n  float fVar33;\n  double dVar34;\n  double dVar35;\n  double dVar36;\n  ulong local_20a8;\n  long local_20a0;\n  ulong local_2080;\n  long local_2070;\n  long local_2060;\n  char *local_2058;\n  char *local_2050;\n  char local_2048 [4096];\n  char local_1048 [4104];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");\n  }\n  if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");\n  }\n  if (*(int *)(param_1 + 0x3270) != 0) {\n    LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");\n  }\n  if (*(long *)(param_2 + 0x30) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );\n  }\n  local_2060 = AcquireImage(param_1,param_2);\n  iVar6 = OpenBlob(param_1,local_2060,2,param_2);\n  if (iVar6 == 0) {\n    DestroyImageList(local_2060);\n    lVar15 = 0;\n    goto LAB_0033a403;\n  }\n  pcVar8 = (char *)AcquireString(&DAT_00473ecb);\n  *pcVar8 = '\0';\n  lVar15 = 0;\n  uVar13 = 0;\n  local_20a0 = 0;\n  __s = (void *)0x0;\nLAB_0033a25a:\n  do {\n    do {\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));\n    iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n    if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }\n    iVar6 = LocaleCompare(local_2048,"TITLE ");\n    if (iVar6 == 0) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }\n    if (uVar13 != 0) {\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }\n  } while (0xd < (byte)(*pcVar8 - 0x2cU));\nLAB_0033a378:\n  DestroyString(pcVar8);\n  if (uVar13 == 0) {\n    if (local_20a0 != 0) {\n      RelinquishVirtualMemory(local_20a0);\n    }\n    ThrowMagickException\n              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270);\n    lVar15 = local_2060;\n    if (local_2060 != 0) {\n      CloseBlob(local_2060);\n      DestroyImageList(local_2060);\n      lVar15 = 0;\n    }\n    goto LAB_0033a403;\n  }\n  local_2080 = *(ulong *)(param_1 + 0x38);\n  if (local_2080 - 2 < 0xff) {\n    uVar16 = local_2080 * local_2080;\n    lVar15 = local_2080 * uVar16;\n    *(long *)(local_2060 + 0x20) = lVar15;\n    *(long *)(local_2060 + 0x28) = lVar15;\n    iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2);\n    if (iVar6 == 0) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n    if (0 < (long)uVar16) goto LAB_0033ab1a;\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n  }\n  else {\n    *(undefined8 *)(local_2060 + 0x20) = 0x200;\n    *(undefined8 *)(local_2060 + 0x28) = 0x200;\n    iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);\n    if (iVar6 == 0) goto LAB_0033a49e;\n    uVar16 = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != uVar16);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n    if (iVar6 == 0) {\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n  }\n  if (0 < *(long *)(param_1 + 0x38)) {\n    lVar15 = 0;\n    do {\n      uVar10 = CloneImage(local_2060,0,0,1,param_2);\n      AppendImageToList(&local_2060,uVar10);\n      lVar15 = lVar15 + 1;\n    } while (lVar15 < *(long *)(param_1 + 0x38));\n  }\n  lVar15 = GetFirstImageInList(local_2060);\nLAB_0033a403:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return lVar15;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "float *pfVar2;" primitive_type (pointer_declarator "*pfVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "float fVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar10;" type_identifier identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "void *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar16;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "float fVar17;" primitive_type identifier ;) (declaration "double dVar18;" primitive_type identifier ;) (declaration "double dVar19;" primitive_type identifier ;) (declaration "undefined1 auVar20 [16];" type_identifier (array_declarator "auVar20 [16]" identifier [ number_literal ]) ;) (declaration "float fVar21;" primitive_type identifier ;) (declaration "double dVar22;" primitive_type identifier ;) (declaration "float fVar23;" primitive_type identifier ;) (declaration "float fVar24;" primitive_type identifier ;) (declaration "double dVar25;" primitive_type identifier ;) (declaration "float fVar26;" primitive_type identifier ;) (declaration "float fVar27;" primitive_type identifier ;) (declaration "float fVar28;" primitive_type identifier ;) (declaration "float fVar29;" primitive_type identifier ;) (declaration "undefined1 auVar30 [16];" type_identifier (array_declarator "auVar30 [16]" identifier [ number_literal ]) ;) (declaration "float fVar31;" primitive_type identifier ;) (declaration "float fVar32;" primitive_type identifier ;) (declaration "float fVar33;" primitive_type identifier ;) (declaration "double dVar34;" primitive_type identifier ;) (declaration "double dVar35;" primitive_type identifier ;) (declaration "double dVar36;" primitive_type identifier ;) (declaration "ulong local_20a8;" type_identifier identifier ;) (declaration "long local_20a0;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong local_2080;" type_identifier identifier ;) (declaration "long local_2070;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_2060;" (sized_type_specifier "long" long) identifier ;) (declaration "char *local_2058;" primitive_type (pointer_declarator "*local_2058" * identifier) ;) (declaration "char *local_2050;" primitive_type (pointer_declarator "*local_2050" * identifier) ;) (declaration "char local_2048 [4096];" primitive_type (array_declarator "local_2048 [4096]" identifier [ number_literal ]) ;) (declaration "char local_1048 [4104];" primitive_type (array_declarator "local_1048 [4104]" identifier [ number_literal ]) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");\n  }" { comment (expression_statement "__assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");" (call_expression "__assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage")" identifier (argument_list "("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage")" ( (string_literal ""image_info != (const ImageInfo *) NULL"" " string_content ") , (string_literal ""coders/cube.c"" " string_content ") , number_literal , (string_literal ""ReadCUBEImage"" " string_content ") ))) ;) })) (if_statement "if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");\n  }" if (parenthesized_expression "(*(long *)(param_1 + 0x3278) != 0xabacadab)" ( (binary_expression "*(long *)(param_1 + 0x3278) != 0xabacadab" (pointer_expression "*(long *)(param_1 + 0x3278)" * (cast_expression "(long *)(param_1 + 0x3278)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3278)" ( (binary_expression "param_1 + 0x3278" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");\n  }" { comment (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage")" identifier (argument_list "("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage")" ( (string_literal ""image_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/cube.c"" " string_content ") , number_literal , (string_literal ""ReadCUBEImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3270) != 0) {\n    LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3270) != 0)" ( (binary_expression "*(int *)(param_1 + 0x3270) != 0" (pointer_expression "*(int *)(param_1 + 0x3270)" * (cast_expression "(int *)(param_1 + 0x3270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3270)" ( (binary_expression "param_1 + 0x3270" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270);\n  }" { (expression_statement "LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270);" (call_expression "LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270)" identifier (argument_list "(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270)" ( number_literal , (string_literal ""coders/cube.c"" " string_content ") , (string_literal ""ReadCUBEImage"" " string_content ") , number_literal , (pointer_expression "&DAT_0041fe36" & identifier) , (binary_expression "param_1 + 0x2270" identifier + number_literal) ))) ;) })) (if_statement "if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");\n  }" { comment (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage")" identifier (argument_list "("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage")" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""coders/cube.c"" " string_content ") , number_literal , (string_literal ""ReadCUBEImage"" " string_content ") ))) ;) })) (if_statement "if (*(long *)(param_2 + 0x30) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );\n  }" if (parenthesized_expression "(*(long *)(param_2 + 0x30) != 0xabacadab)" ( (binary_expression "*(long *)(param_2 + 0x30) != 0xabacadab" (pointer_expression "*(long *)(param_2 + 0x30)" * (cast_expression "(long *)(param_2 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );\n  }" { comment (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 )" identifier (argument_list "("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 )" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/cube.c"" " string_content ") , number_literal , (string_literal ""ReadCUBEImage"" " string_content ") ))) ;) })) (expression_statement "local_2060 = AcquireImage(param_1,param_2);" (assignment_expression "local_2060 = AcquireImage(param_1,param_2)" identifier = (call_expression "AcquireImage(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (expression_statement "iVar6 = OpenBlob(param_1,local_2060,2,param_2);" (assignment_expression "iVar6 = OpenBlob(param_1,local_2060,2,param_2)" identifier = (call_expression "OpenBlob(param_1,local_2060,2,param_2)" identifier (argument_list "(param_1,local_2060,2,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar6 == 0) {\n    DestroyImageList(local_2060);\n    lVar15 = 0;\n    goto LAB_0033a403;\n  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    DestroyImageList(local_2060);\n    lVar15 = 0;\n    goto LAB_0033a403;\n  }" { (expression_statement "DestroyImageList(local_2060);" (call_expression "DestroyImageList(local_2060)" identifier (argument_list "(local_2060)" ( identifier ))) ;) (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0033a403;" goto statement_identifier ;) })) (expression_statement "pcVar8 = (char *)AcquireString(&DAT_00473ecb);" (assignment_expression "pcVar8 = (char *)AcquireString(&DAT_00473ecb)" identifier = (cast_expression "(char *)AcquireString(&DAT_00473ecb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireString(&DAT_00473ecb)" identifier (argument_list "(&DAT_00473ecb)" ( (pointer_expression "&DAT_00473ecb" & identifier) ))))) ;) (expression_statement "*pcVar8 = '\0';" (assignment_expression "*pcVar8 = '\0'" (pointer_expression "*pcVar8" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "local_20a0 = 0;" (assignment_expression "local_20a0 = 0" identifier = number_literal) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0033a25a:\n  do {\n    do {\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));\n    iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n    if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }\n    iVar6 = LocaleCompare(local_2048,"TITLE ");\n    if (iVar6 == 0) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }\n    if (uVar13 != 0) {\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }\n  } while (0xd < (byte)(*pcVar8 - 0x2cU));" statement_identifier : (do_statement "do {\n    do {\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));\n    iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n    if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }\n    iVar6 = LocaleCompare(local_2048,"TITLE ");\n    if (iVar6 == 0) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }\n    if (uVar13 != 0) {\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }\n  } while (0xd < (byte)(*pcVar8 - 0x2cU));" do (compound_statement "{\n    do {\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));\n    iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n    if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }\n    iVar6 = LocaleCompare(local_2048,"TITLE ");\n    if (iVar6 == 0) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }\n    if (uVar13 != 0) {\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }\n  }" { (do_statement "do {\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));" do (compound_statement "{\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    }" { (expression_statement "lVar9 = ReadBlobString(local_2060,pcVar8);" (assignment_expression "lVar9 = ReadBlobString(local_2060,pcVar8)" identifier = (call_expression "ReadBlobString(local_2060,pcVar8)" identifier (argument_list "(local_2060,pcVar8)" ( identifier , identifier )))) ;) (if_statement "if (lVar9 == 0) goto LAB_0033a378;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0033a378;" goto statement_identifier ;)) (expression_statement "local_2058 = pcVar8;" (assignment_expression "local_2058 = pcVar8" identifier = identifier) ;) (expression_statement "GetNextToken(pcVar8,&local_2058,0x1000,local_2048);" (call_expression "GetNextToken(pcVar8,&local_2058,0x1000,local_2048)" identifier (argument_list "(pcVar8,&local_2058,0x1000,local_2048)" ( identifier , (pointer_expression "&local_2058" & identifier) , number_literal , identifier ))) ;) }) while (parenthesized_expression "((local_2048[0] == '#') || (local_2048[0] == '\0'))" ( (binary_expression "(local_2048[0] == '#') || (local_2048[0] == '\0')" (parenthesized_expression "(local_2048[0] == '#')" ( (binary_expression "local_2048[0] == '#'" (subscript_expression "local_2048[0]" identifier [ number_literal ]) == (char_literal "'#'" ' character ')) )) || (parenthesized_expression "(local_2048[0] == '\0')" ( (binary_expression "local_2048[0] == '\0'" (subscript_expression "local_2048[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) ;) (expression_statement "iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");" (assignment_expression "iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE")" identifier = (call_expression "LocaleCompare(local_2048,"LUT_1D_SIZE")" identifier (argument_list "(local_2048,"LUT_1D_SIZE")" ( identifier , (string_literal ""LUT_1D_SIZE"" " string_content ") )))) ;) (if_statement "if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }" if (parenthesized_expression "(((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0))" ( (binary_expression "((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)" (parenthesized_expression "((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0))" ( (binary_expression "(iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)" (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)" ( (comma_expression "iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0" (assignment_expression "iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE")" identifier = (call_expression "LocaleCompare(local_2048,"LUT_3D_SIZE")" identifier (argument_list "(local_2048,"LUT_3D_SIZE")" ( identifier , (string_literal ""LUT_3D_SIZE"" " string_content ") )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(local_20a0 == 0)" ( (binary_expression "local_20a0 == 0" identifier == number_literal) ))) )) (compound_statement "{\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }" { (expression_statement "GetNextToken(local_2058,&local_2058,0x1000,local_1048);" (call_expression "GetNextToken(local_2058,&local_2058,0x1000,local_1048)" identifier (argument_list "(local_2058,&local_2058,0x1000,local_1048)" ( identifier , (pointer_expression "&local_2058" & identifier) , number_literal , identifier ))) ;) (expression_statement "uVar13 = strtol(local_1048,(char **)0x0,10);" (assignment_expression "uVar13 = strtol(local_1048,(char **)0x0,10)" identifier = (call_expression "strtol(local_1048,(char **)0x0,10)" identifier (argument_list "(local_1048,(char **)0x0,10)" ( identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (expression_statement "iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");" (assignment_expression "iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE")" identifier = (call_expression "LocaleCompare(local_2048,"LUT_1D_SIZE")" identifier (argument_list "(local_2048,"LUT_1D_SIZE")" ( identifier , (string_literal ""LUT_1D_SIZE"" " string_content ") )))) ;) (if_statement "if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }" { (expression_statement "dVar18 = pow((double)uVar13,DAT_00406790);" (assignment_expression "dVar18 = pow((double)uVar13,DAT_00406790)" identifier = (call_expression "pow((double)uVar13,DAT_00406790)" identifier (argument_list "((double)uVar13,DAT_00406790)" ( (cast_expression "(double)uVar13" ( (type_descriptor "double" primitive_type) ) identifier) , identifier )))) ;) (if_statement "if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }" if (parenthesized_expression "((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30)" ( (binary_expression "(double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30" (cast_expression "(double)((ulong)dVar18 & DAT_003f9c70)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((ulong)dVar18 & DAT_003f9c70)" ( (binary_expression "(ulong)dVar18 & DAT_003f9c70" (cast_expression "(ulong)dVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) & identifier) ))) < identifier) )) (compound_statement "{\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }" { (expression_statement "dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);" (assignment_expression "dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18)" identifier = (cast_expression "(double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18)" ( (binary_expression "(ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18" (call_expression "(ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18)" ( (binary_expression "(double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18" (cast_expression "(double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608)" ( (binary_expression "-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608" (unary_expression "-(ulong)((double)(long)dVar18 < dVar18)" - (call_expression "(ulong)((double)(long)dVar18 < dVar18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((double)(long)dVar18 < dVar18)" ( (binary_expression "(double)(long)dVar18 < dVar18" (cast_expression "(double)(long)dVar18" ( (type_descriptor "double" primitive_type) ) (cast_expression "(long)dVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < identifier) )))) & (cast_expression "(ulong)DAT_003f9608" ( (type_descriptor "ulong" type_identifier) ) identifier)) ))) + (cast_expression "(double)(long)dVar18" ( (type_descriptor "double" primitive_type) ) (cast_expression "(long)dVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ))) | (binary_expression "~DAT_003f9c70 & (ulong)dVar18" (unary_expression "~DAT_003f9c70" ~ identifier) & (cast_expression "(ulong)dVar18" ( (type_descriptor "ulong" type_identifier) ) identifier))) )))) ;) })) (if_statement "if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }" if (parenthesized_expression "(DAT_003f9c40 <= dVar18)" ( (binary_expression "DAT_003f9c40 <= dVar18" identifier <= identifier) )) (compound_statement "{\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }" { (expression_statement "uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;" (assignment_expression "uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000" identifier = (binary_expression "(long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000" (cast_expression "(long)(dVar18 - DAT_003f9c40)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(dVar18 - DAT_003f9c40)" ( (binary_expression "dVar18 - DAT_003f9c40" identifier - identifier) ))) ^ number_literal)) ;) }) (else_clause "else {\n          uVar13 = (ulong)dVar18;\n        }" else (compound_statement "{\n          uVar13 = (ulong)dVar18;\n        }" { (expression_statement "uVar13 = (ulong)dVar18;" (assignment_expression "uVar13 = (ulong)dVar18" identifier = (cast_expression "(ulong)dVar18" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }))) })) (if_statement "if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }" if (parenthesized_expression "(uVar13 - 2 < 0xff)" ( (binary_expression "uVar13 - 2 < 0xff" (binary_expression "uVar13 - 2" identifier - number_literal) < number_literal) )) (compound_statement "{\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }" { (expression_statement "local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);" (assignment_expression "local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc)" identifier = (call_expression "AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc)" identifier (argument_list "(uVar13 * uVar13,uVar13 * 0xc)" ( (binary_expression "uVar13 * uVar13" identifier * identifier) , (binary_expression "uVar13 * 0xc" identifier * number_literal) )))) ;) (if_statement "if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }" if (parenthesized_expression "(local_20a0 != 0)" ( (binary_expression "local_20a0 != 0" identifier != number_literal) )) (compound_statement "{\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }" { (expression_statement "__s = (void *)GetVirtualMemoryBlob(local_20a0);" (assignment_expression "__s = (void *)GetVirtualMemoryBlob(local_20a0)" identifier = (cast_expression "(void *)GetVirtualMemoryBlob(local_20a0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "GetVirtualMemoryBlob(local_20a0)" identifier (argument_list "(local_20a0)" ( identifier ))))) ;) (expression_statement "memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);" (call_expression "memset(__s,0,uVar13 * 0xc * uVar13 * uVar13)" identifier (argument_list "(__s,0,uVar13 * 0xc * uVar13 * uVar13)" ( identifier , number_literal , (binary_expression "uVar13 * 0xc * uVar13 * uVar13" (binary_expression "uVar13 * 0xc * uVar13" (binary_expression "uVar13 * 0xc" identifier * number_literal) * identifier) * identifier) ))) ;) (goto_statement "goto LAB_0033a25a;" goto statement_identifier ;) })) (expression_statement "DestroyString(pcVar8);" (call_expression "DestroyString(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);" (call_expression "ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270)" identifier (argument_list "(param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270)" ( identifier , (string_literal ""coders/cube.c"" " string_content ") , (string_literal ""ReadCUBEImage"" " string_content ") , number_literal , number_literal , (string_literal ""MemoryAllocationFailed"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_1 + 0x2270" identifier + number_literal) ))) ;) (if_statement "if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }" if (parenthesized_expression "(local_2060 != 0)" ( (binary_expression "local_2060 != 0" identifier != number_literal) )) (compound_statement "{\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }" { (expression_statement "CloseBlob();" (call_expression "CloseBlob()" identifier (argument_list "()" ( ))) ;) (expression_statement "DestroyImageList(local_2060);" (call_expression "DestroyImageList(local_2060)" identifier (argument_list "(local_2060)" ( identifier ))) ;) })) }) (else_clause "else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }" else (compound_statement "{\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }" { (expression_statement "DestroyString(pcVar8);" (call_expression "DestroyString(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);" (call_expression "ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270)" identifier (argument_list "(param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270)" ( identifier , (string_literal ""coders/cube.c"" " string_content ") , (string_literal ""ReadCUBEImage"" " string_content ") , number_literal , number_literal , (string_literal ""ImproperImageHeader"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_1 + 0x2270" identifier + number_literal) ))) ;) (if_statement "if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }" if (parenthesized_expression "(local_2060 != 0)" ( (binary_expression "local_2060 != 0" identifier != number_literal) )) (compound_statement "{\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }" { (expression_statement "CloseBlob();" (call_expression "CloseBlob()" identifier (argument_list "()" ( ))) ;) (expression_statement "DestroyImageList(local_2060);" (call_expression "DestroyImageList(local_2060)" identifier (argument_list "(local_2060)" ( identifier ))) ;) })) }))) (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0033a403;" goto statement_identifier ;) })) (expression_statement "iVar6 = LocaleCompare(local_2048,"TITLE ");" (assignment_expression "iVar6 = LocaleCompare(local_2048,"TITLE ")" identifier = (call_expression "LocaleCompare(local_2048,"TITLE ")" identifier (argument_list "(local_2048,"TITLE ")" ( identifier , (string_literal ""TITLE "" " string_content ") )))) ;) (if_statement "if (iVar6 == 0) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }" { (expression_statement "GetNextToken(local_2058,&local_2058,0x1000,local_1048);" (call_expression "GetNextToken(local_2058,&local_2058,0x1000,local_1048)" identifier (argument_list "(local_2058,&local_2058,0x1000,local_1048)" ( identifier , (pointer_expression "&local_2058" & identifier) , number_literal , identifier ))) ;) (expression_statement "SetImageProperty(local_2060,"title",local_1048,param_2);" (call_expression "SetImageProperty(local_2060,"title",local_1048,param_2)" identifier (argument_list "(local_2060,"title",local_1048,param_2)" ( identifier , (string_literal ""title"" " string_content ") , identifier , identifier ))) ;) (goto_statement "goto LAB_0033a25a;" goto statement_identifier ;) })) (if_statement "if (uVar13 != 0) {\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }" { (expression_statement "lVar9 = uVar13 * uVar13 * uVar13;" (assignment_expression "lVar9 = uVar13 * uVar13 * uVar13" identifier = (binary_expression "uVar13 * uVar13 * uVar13" (binary_expression "uVar13 * uVar13" identifier * identifier) * identifier)) ;) (if_statement "if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;" if (parenthesized_expression "(lVar9 - lVar15 == 0 || lVar9 < lVar15)" ( (binary_expression "lVar9 - lVar15 == 0 || lVar9 < lVar15" (binary_expression "lVar9 - lVar15 == 0" (binary_expression "lVar9 - lVar15" identifier - identifier) == number_literal) || (binary_expression "lVar9 < lVar15" identifier < identifier)) )) (break_statement "break;" break ;)) (expression_statement "local_2050 = pcVar8;" (assignment_expression "local_2050 = pcVar8" identifier = identifier) ;) (expression_statement "dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);" (assignment_expression "dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050)" identifier = (cast_expression "(double)InterpretLocaleValue(pcVar8,&local_2050)" ( (type_descriptor "double" primitive_type) ) (call_expression "InterpretLocaleValue(pcVar8,&local_2050)" identifier (argument_list "(pcVar8,&local_2050)" ( identifier , (pointer_expression "&local_2050" & identifier) ))))) ;) (expression_statement "pfVar2 = (float *)((long)__s + lVar15 * 0xc);" (assignment_expression "pfVar2 = (float *)((long)__s + lVar15 * 0xc)" identifier = (cast_expression "(float *)((long)__s + lVar15 * 0xc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + lVar15 * 0xc)" ( (binary_expression "(long)__s + lVar15 * 0xc" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "lVar15 * 0xc" identifier * number_literal)) )))) ;) (expression_statement "*pfVar2 = (float)dVar18;" (assignment_expression "*pfVar2 = (float)dVar18" (pointer_expression "*pfVar2" * identifier) = (cast_expression "(float)dVar18" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);" (assignment_expression "dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050)" identifier = (cast_expression "(double)InterpretLocaleValue(local_2050,&local_2050)" ( (type_descriptor "double" primitive_type) ) (call_expression "InterpretLocaleValue(local_2050,&local_2050)" identifier (argument_list "(local_2050,&local_2050)" ( identifier , (pointer_expression "&local_2050" & identifier) ))))) ;) (expression_statement "pfVar2[1] = (float)dVar18;" (assignment_expression "pfVar2[1] = (float)dVar18" (subscript_expression "pfVar2[1]" identifier [ number_literal ]) = (cast_expression "(float)dVar18" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);" (assignment_expression "dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050)" identifier = (cast_expression "(double)InterpretLocaleValue(local_2050,&local_2050)" ( (type_descriptor "double" primitive_type) ) (call_expression "InterpretLocaleValue(local_2050,&local_2050)" identifier (argument_list "(local_2050,&local_2050)" ( identifier , (pointer_expression "&local_2050" & identifier) ))))) ;) (expression_statement "pfVar2[2] = (float)dVar18;" (assignment_expression "pfVar2[2] = (float)dVar18" (subscript_expression "pfVar2[2]" identifier [ number_literal ]) = (cast_expression "(float)dVar18" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "lVar15 = lVar15 + 1;" (assignment_expression "lVar15 = lVar15 + 1" identifier = (binary_expression "lVar15 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0033a25a;" goto statement_identifier ;) })) }) while (parenthesized_expression "(0xd < (byte)(*pcVar8 - 0x2cU))" ( (binary_expression "0xd < (byte)(*pcVar8 - 0x2cU)" number_literal < (call_expression "(byte)(*pcVar8 - 0x2cU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pcVar8 - 0x2cU)" ( (binary_expression "*pcVar8 - 0x2cU" (pointer_expression "*pcVar8" * identifier) - number_literal) )))) )) ;)) (labeled_statement "LAB_0033a378:\n  DestroyString(pcVar8);" statement_identifier : (expression_statement "DestroyString(pcVar8);" (call_expression "DestroyString(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;)) (if_statement "if (uVar13 == 0) {\n    if (local_20a0 != 0) {\n      RelinquishVirtualMemory(local_20a0);\n    }\n    ThrowMagickException\n              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270);\n    lVar15 = local_2060;\n    if (local_2060 != 0) {\n      CloseBlob(local_2060);\n      DestroyImageList(local_2060);\n      lVar15 = 0;\n    }\n    goto LAB_0033a403;\n  }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n    if (local_20a0 != 0) {\n      RelinquishVirtualMemory(local_20a0);\n    }\n    ThrowMagickException\n              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270);\n    lVar15 = local_2060;\n    if (local_2060 != 0) {\n      CloseBlob(local_2060);\n      DestroyImageList(local_2060);\n      lVar15 = 0;\n    }\n    goto LAB_0033a403;\n  }" { (if_statement "if (local_20a0 != 0) {\n      RelinquishVirtualMemory(local_20a0);\n    }" if (parenthesized_expression "(local_20a0 != 0)" ( (binary_expression "local_20a0 != 0" identifier != number_literal) )) (compound_statement "{\n      RelinquishVirtualMemory(local_20a0);\n    }" { (expression_statement "RelinquishVirtualMemory(local_20a0);" (call_expression "RelinquishVirtualMemory(local_20a0)" identifier (argument_list "(local_20a0)" ( identifier ))) ;) })) (expression_statement "ThrowMagickException\n              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270);" (call_expression "ThrowMagickException\n              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270)" identifier (argument_list "(param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270)" ( identifier , (string_literal ""coders/cube.c"" " string_content ") , (string_literal ""ReadCUBEImage"" " string_content ") , number_literal , number_literal , (string_literal ""ImproperImageHeader"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_1 + 0x2270" identifier + number_literal) ))) ;) (expression_statement "lVar15 = local_2060;" (assignment_expression "lVar15 = local_2060" identifier = identifier) ;) (if_statement "if (local_2060 != 0) {\n      CloseBlob(local_2060);\n      DestroyImageList(local_2060);\n      lVar15 = 0;\n    }" if (parenthesized_expression "(local_2060 != 0)" ( (binary_expression "local_2060 != 0" identifier != number_literal) )) (compound_statement "{\n      CloseBlob(local_2060);\n      DestroyImageList(local_2060);\n      lVar15 = 0;\n    }" { (expression_statement "CloseBlob(local_2060);" (call_expression "CloseBlob(local_2060)" identifier (argument_list "(local_2060)" ( identifier ))) ;) (expression_statement "DestroyImageList(local_2060);" (call_expression "DestroyImageList(local_2060)" identifier (argument_list "(local_2060)" ( identifier ))) ;) (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_0033a403;" goto statement_identifier ;) })) (expression_statement "local_2080 = *(ulong *)(param_1 + 0x38);" (assignment_expression "local_2080 = *(ulong *)(param_1 + 0x38)" identifier = (pointer_expression "*(ulong *)(param_1 + 0x38)" * (cast_expression "(ulong *)(param_1 + 0x38)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (local_2080 - 2 < 0xff) {\n    uVar16 = local_2080 * local_2080;\n    lVar15 = local_2080 * uVar16;\n    *(long *)(local_2060 + 0x20) = lVar15;\n    *(long *)(local_2060 + 0x28) = lVar15;\n    iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2);\n    if (iVar6 == 0) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n    if (0 < (long)uVar16) goto LAB_0033ab1a;\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n  }\n  else {\n    *(undefined8 *)(local_2060 + 0x20) = 0x200;\n    *(undefined8 *)(local_2060 + 0x28) = 0x200;\n    iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);\n    if (iVar6 == 0) goto LAB_0033a49e;\n    uVar16 = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != uVar16);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n    if (iVar6 == 0) {\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n  }" if (parenthesized_expression "(local_2080 - 2 < 0xff)" ( (binary_expression "local_2080 - 2 < 0xff" (binary_expression "local_2080 - 2" identifier - number_literal) < number_literal) )) (compound_statement "{\n    uVar16 = local_2080 * local_2080;\n    lVar15 = local_2080 * uVar16;\n    *(long *)(local_2060 + 0x20) = lVar15;\n    *(long *)(local_2060 + 0x28) = lVar15;\n    iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2);\n    if (iVar6 == 0) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n    if (0 < (long)uVar16) goto LAB_0033ab1a;\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n  }" { (expression_statement "uVar16 = local_2080 * local_2080;" (assignment_expression "uVar16 = local_2080 * local_2080" identifier = (binary_expression "local_2080 * local_2080" identifier * identifier)) ;) (expression_statement "lVar15 = local_2080 * uVar16;" (assignment_expression "lVar15 = local_2080 * uVar16" identifier = (binary_expression "local_2080 * uVar16" identifier * identifier)) ;) (expression_statement "*(long *)(local_2060 + 0x20) = lVar15;" (assignment_expression "*(long *)(local_2060 + 0x20) = lVar15" (pointer_expression "*(long *)(local_2060 + 0x20)" * (cast_expression "(long *)(local_2060 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2060 + 0x20)" ( (binary_expression "local_2060 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(long *)(local_2060 + 0x28) = lVar15;" (assignment_expression "*(long *)(local_2060 + 0x28) = lVar15" (pointer_expression "*(long *)(local_2060 + 0x28)" * (cast_expression "(long *)(local_2060 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2060 + 0x28)" ( (binary_expression "local_2060 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2);" (assignment_expression "iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2)" identifier = (call_expression "SetImageExtent(local_2060,lVar15,lVar15,param_2)" identifier (argument_list "(local_2060,lVar15,lVar15,param_2)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar6 == 0) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }" { (labeled_statement "LAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);" statement_identifier : (expression_statement "RelinquishVirtualMemory(local_20a0);" (call_expression "RelinquishVirtualMemory(local_20a0)" identifier (argument_list "(local_20a0)" ( identifier ))) ;)) (expression_statement "lVar15 = DestroyImageList(local_2060);" (assignment_expression "lVar15 = DestroyImageList(local_2060)" identifier = (call_expression "DestroyImageList(local_2060)" identifier (argument_list "(local_2060)" ( identifier )))) ;) (goto_statement "goto LAB_0033a403;" goto statement_identifier ;) })) (if_statement "if (0 < (long)uVar16) goto LAB_0033ab1a;" if (parenthesized_expression "(0 < (long)uVar16)" ( (binary_expression "0 < (long)uVar16" number_literal < (cast_expression "(long)uVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_0033ab1a;" goto statement_identifier ;)) (expression_statement "RelinquishVirtualMemory(local_20a0);" (call_expression "RelinquishVirtualMemory(local_20a0)" identifier (argument_list "(local_20a0)" ( identifier ))) ;) (expression_statement "CloseBlob(local_2060);" (call_expression "CloseBlob(local_2060)" identifier (argument_list "(local_2060)" ( identifier ))) ;) }) (else_clause "else {\n    *(undefined8 *)(local_2060 + 0x20) = 0x200;\n    *(undefined8 *)(local_2060 + 0x28) = 0x200;\n    iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);\n    if (iVar6 == 0) goto LAB_0033a49e;\n    uVar16 = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != uVar16);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n    if (iVar6 == 0) {\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n  }" else (compound_statement "{\n    *(undefined8 *)(local_2060 + 0x20) = 0x200;\n    *(undefined8 *)(local_2060 + 0x28) = 0x200;\n    iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);\n    if (iVar6 == 0) goto LAB_0033a49e;\n    uVar16 = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != uVar16);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n    if (iVar6 == 0) {\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n  }" { (expression_statement "*(undefined8 *)(local_2060 + 0x20) = 0x200;" (assignment_expression "*(undefined8 *)(local_2060 + 0x20) = 0x200" (pointer_expression "*(undefined8 *)(local_2060 + 0x20)" * (cast_expression "(undefined8 *)(local_2060 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2060 + 0x20)" ( (binary_expression "local_2060 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(local_2060 + 0x28) = 0x200;" (assignment_expression "*(undefined8 *)(local_2060 + 0x28) = 0x200" (pointer_expression "*(undefined8 *)(local_2060 + 0x28)" * (cast_expression "(undefined8 *)(local_2060 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2060 + 0x28)" ( (binary_expression "local_2060 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);" (assignment_expression "iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2)" identifier = (call_expression "SetImageExtent(local_2060,0x200,0x200,param_2)" identifier (argument_list "(local_2060,0x200,0x200,param_2)" ( identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar6 == 0) goto LAB_0033a49e;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0033a49e;" goto statement_identifier ;)) (expression_statement "uVar16 = 0x40;" (assignment_expression "uVar16 = 0x40" identifier = number_literal) ;) (expression_statement "local_2080 = 8;" (assignment_expression "local_2080 = 8" identifier = number_literal) ;) (labeled_statement "LAB_0033ab1a:\n    local_2070 = 0;" statement_identifier : (expression_statement "local_2070 = 0;" (assignment_expression "local_2070 = 0" identifier = number_literal) ;)) (expression_statement "local_20a8 = 0;" (assignment_expression "local_20a8 = 0" identifier = number_literal) ;) (do_statement "do {\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != uVar16);" do (compound_statement "{\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    }" { (if_statement "if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);" do (compound_statement "{\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        }" { (expression_statement "iVar7 = iVar6;" (assignment_expression "iVar7 = iVar6" identifier = identifier) ;) (if_statement "if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }" { (expression_statement "lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);" (assignment_expression "lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2)" identifier = (call_expression "QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2)" identifier (argument_list "(local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2)" ( identifier , (binary_expression "(uVar14 % local_2080) * uVar16" (parenthesized_expression "(uVar14 % local_2080)" ( (binary_expression "uVar14 % local_2080" identifier % identifier) )) * identifier) , (binary_expression "(uVar14 / local_2080) % uVar16 + local_2070" (binary_expression "(uVar14 / local_2080) % uVar16" (parenthesized_expression "(uVar14 / local_2080)" ( (binary_expression "uVar14 / local_2080" identifier / identifier) )) % identifier) + identifier) , identifier , number_literal , identifier )))) ;) (expression_statement "uVar5 = DAT_0043b420;" (assignment_expression "uVar5 = DAT_0043b420" identifier = identifier) ;) (if_statement "if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar7 = 0;\n            }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }" else (compound_statement "{\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }" { (expression_statement "dVar35 = (double)uVar16 - DAT_003f9608;" (assignment_expression "dVar35 = (double)uVar16 - DAT_003f9608" identifier = (binary_expression "(double)uVar16 - DAT_003f9608" (cast_expression "(double)uVar16" ( (type_descriptor "double" primitive_type) ) identifier) - identifier)) ;) (expression_statement "dVar18 = DAT_003f9c68;" (assignment_expression "dVar18 = DAT_003f9c68" identifier = identifier) ;) (if_statement "if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }" if (parenthesized_expression "(0.0 <= dVar35)" ( (binary_expression "0.0 <= dVar35" number_literal <= identifier) )) (compound_statement "{\n                dVar18 = DAT_003f9608;\n              }" { (expression_statement "dVar18 = DAT_003f9608;" (assignment_expression "dVar18 = DAT_003f9608" identifier = identifier) ;) })) (expression_statement "dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;" (assignment_expression "dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608" identifier = (binary_expression "(double)local_2080 * (double)local_2080 - DAT_003f9608" (binary_expression "(double)local_2080 * (double)local_2080" (cast_expression "(double)local_2080" ( (type_descriptor "double" primitive_type) ) identifier) * (cast_expression "(double)local_2080" ( (type_descriptor "double" primitive_type) ) identifier)) - identifier)) ;) (expression_statement "dVar36 = DAT_003f9c68;" (assignment_expression "dVar36 = DAT_003f9c68" identifier = identifier) ;) (if_statement "if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }" if (parenthesized_expression "(0.0 <= dVar34)" ( (binary_expression "0.0 <= dVar34" number_literal <= identifier) )) (compound_statement "{\n                dVar36 = DAT_003f9608;\n              }" { (expression_statement "dVar36 = DAT_003f9608;" (assignment_expression "dVar36 = DAT_003f9608" identifier = identifier) ;) })) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);" do (compound_statement "{\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              }" { (expression_statement "fVar4 = _DAT_003fa400;" (assignment_expression "fVar4 = _DAT_003fa400" identifier = identifier) ;) (if_statement "if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }" if (parenthesized_expression "(dVar18 * dVar35 < DAT_003f9600)" ( (binary_expression "dVar18 * dVar35 < DAT_003f9600" (binary_expression "dVar18 * dVar35" identifier * identifier) < identifier) )) (compound_statement "{\n                  dVar22 = dVar18 / DAT_003f9600;\n                }" { (expression_statement "dVar22 = dVar18 / DAT_003f9600;" (assignment_expression "dVar22 = dVar18 / DAT_003f9600" identifier = (binary_expression "dVar18 / DAT_003f9600" identifier / identifier)) ;) }) (else_clause "else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }" else (compound_statement "{\n                  dVar22 = DAT_003f9608 / dVar35;\n                }" { (expression_statement "dVar22 = DAT_003f9608 / dVar35;" (assignment_expression "dVar22 = DAT_003f9608 / dVar35" identifier = (binary_expression "DAT_003f9608 / dVar35" identifier / identifier)) ;) }))) (expression_statement "dVar19 = (double)uVar13 - DAT_003f9608;" (assignment_expression "dVar19 = (double)uVar13 - DAT_003f9608" identifier = (binary_expression "(double)uVar13 - DAT_003f9608" (cast_expression "(double)uVar13" ( (type_descriptor "double" primitive_type) ) identifier) - identifier)) ;) (expression_statement "dVar22 = (double)(long)uVar11 * dVar22 * dVar19;" (assignment_expression "dVar22 = (double)(long)uVar11 * dVar22 * dVar19" identifier = (binary_expression "(double)(long)uVar11 * dVar22 * dVar19" (binary_expression "(double)(long)uVar11 * dVar22" (cast_expression "(double)(long)uVar11" ( (type_descriptor "double" primitive_type) ) (cast_expression "(long)uVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) * identifier) * identifier)) ;) (expression_statement "fVar26 = (float)dVar22;" (assignment_expression "fVar26 = (float)dVar22" identifier = (cast_expression "(float)dVar22" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "fVar23 = fVar26;" (assignment_expression "fVar23 = fVar26" identifier = identifier) ;) (if_statement "if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }" if (parenthesized_expression "((float)((uint)fVar26 & uVar5) < _DAT_0043b430)" ( (binary_expression "(float)((uint)fVar26 & uVar5) < _DAT_0043b430" (cast_expression "(float)((uint)fVar26 & uVar5)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((uint)fVar26 & uVar5)" ( (binary_expression "(uint)fVar26 & uVar5" (cast_expression "(uint)fVar26" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) ))) < identifier) )) (compound_statement "{\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }" { (expression_statement "fVar23 = (float)(int)dVar22;" (assignment_expression "fVar23 = (float)(int)dVar22" identifier = (cast_expression "(float)(int)dVar22" ( (type_descriptor "float" primitive_type) ) (cast_expression "(int)dVar22" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);" (assignment_expression "fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26)" identifier = (cast_expression "(float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26)" ( (binary_expression "(uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26" (call_expression "(uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988))" ( (binary_expression "fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)" identifier - (cast_expression "(float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)" ( (binary_expression "-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988" (unary_expression "-(uint)(fVar26 < fVar23)" - (call_expression "(uint)(fVar26 < fVar23)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(fVar26 < fVar23)" ( (binary_expression "fVar26 < fVar23" identifier < identifier) )))) & (cast_expression "(uint)DAT_00404988" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ))) | (binary_expression "~uVar5 & (uint)fVar26" (unary_expression "~uVar5" ~ identifier) & (cast_expression "(uint)fVar26" ( (type_descriptor "uint" type_identifier) ) identifier))) )))) ;) })) (expression_statement "uVar1 = uVar13 - 1;" (assignment_expression "uVar1 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (if_statement "if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }" if (parenthesized_expression "(DAT_00420e38 <= fVar23)" ( (binary_expression "DAT_00420e38 <= fVar23" identifier <= identifier) )) (compound_statement "{\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }" { (expression_statement "uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;" (assignment_expression "uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000" identifier = (binary_expression "(long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000" (cast_expression "(long)(fVar23 - DAT_00420e38)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar23 - DAT_00420e38)" ( (binary_expression "fVar23 - DAT_00420e38" identifier - identifier) ))) ^ number_literal)) ;) }) (else_clause "else {\n                  uVar12 = (ulong)fVar23;\n                }" else (compound_statement "{\n                  uVar12 = (ulong)fVar23;\n                }" { (expression_statement "uVar12 = (ulong)fVar23;" (assignment_expression "uVar12 = (ulong)fVar23" identifier = (cast_expression "(ulong)fVar23" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }))) (expression_statement "fVar33 = fVar23;" (assignment_expression "fVar33 = fVar23" identifier = identifier) ;) (if_statement "if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }" if (parenthesized_expression "(uVar12 != uVar1)" ( (binary_expression "uVar12 != uVar1" identifier != identifier) )) (compound_statement "{\n                  fVar33 = fVar23 + DAT_00404988;\n                }" { (expression_statement "fVar33 = fVar23 + DAT_00404988;" (assignment_expression "fVar33 = fVar23 + DAT_00404988" identifier = (binary_expression "fVar23 + DAT_00404988" identifier + identifier)) ;) })) (if_statement "if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }" if (parenthesized_expression "(dVar36 * dVar34 < DAT_003f9600)" ( (binary_expression "dVar36 * dVar34 < DAT_003f9600" (binary_expression "dVar36 * dVar34" identifier * identifier) < identifier) )) (compound_statement "{\n                  dVar22 = dVar36 / DAT_003f9600;\n                }" { (expression_statement "dVar22 = dVar36 / DAT_003f9600;" (assignment_expression "dVar22 = dVar36 / DAT_003f9600" identifier = (binary_expression "dVar36 / DAT_003f9600" identifier / identifier)) ;) }) (else_clause "else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }" else (compound_statement "{\n                  dVar22 = DAT_003f9608 / dVar34;\n                }" { (expression_statement "dVar22 = DAT_003f9608 / dVar34;" (assignment_expression "dVar22 = DAT_003f9608 / dVar34" identifier = (binary_expression "DAT_003f9608 / dVar34" identifier / identifier)) ;) }))) (expression_statement "dVar25 = (double)(long)uVar14 * dVar22 * dVar19;" (assignment_expression "dVar25 = (double)(long)uVar14 * dVar22 * dVar19" identifier = (binary_expression "(double)(long)uVar14 * dVar22 * dVar19" (binary_expression "(double)(long)uVar14 * dVar22" (cast_expression "(double)(long)uVar14" ( (type_descriptor "double" primitive_type) ) (cast_expression "(long)uVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) * identifier) * identifier)) ;) (expression_statement "fVar24 = (float)dVar25;" (assignment_expression "fVar24 = (float)dVar25" identifier = (cast_expression "(float)dVar25" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "fVar29 = fVar24;" (assignment_expression "fVar29 = fVar24" identifier = identifier) ;) (if_statement "if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }" if (parenthesized_expression "((float)((uint)fVar24 & uVar5) < _DAT_0043b430)" ( (binary_expression "(float)((uint)fVar24 & uVar5) < _DAT_0043b430" (cast_expression "(float)((uint)fVar24 & uVar5)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((uint)fVar24 & uVar5)" ( (binary_expression "(uint)fVar24 & uVar5" (cast_expression "(uint)fVar24" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) ))) < identifier) )) (compound_statement "{\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }" { (expression_statement "fVar29 = (float)(int)dVar25;" (assignment_expression "fVar29 = (float)(int)dVar25" identifier = (cast_expression "(float)(int)dVar25" ( (type_descriptor "float" primitive_type) ) (cast_expression "(int)dVar25" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);" (assignment_expression "fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24)" identifier = (cast_expression "(float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24)" ( (binary_expression "(uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24" (call_expression "(uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988))" ( (binary_expression "fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)" identifier - (cast_expression "(float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)" ( (binary_expression "-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988" (unary_expression "-(uint)(fVar24 < fVar29)" - (call_expression "(uint)(fVar24 < fVar29)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(fVar24 < fVar29)" ( (binary_expression "fVar24 < fVar29" identifier < identifier) )))) & (cast_expression "(uint)DAT_00404988" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ))) | (binary_expression "~uVar5 & (uint)fVar24" (unary_expression "~uVar5" ~ identifier) & (cast_expression "(uint)fVar24" ( (type_descriptor "uint" type_identifier) ) identifier))) )))) ;) })) (if_statement "if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }" if (parenthesized_expression "(DAT_00420e38 <= fVar29)" ( (binary_expression "DAT_00420e38 <= fVar29" identifier <= identifier) )) (compound_statement "{\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }" { (expression_statement "uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;" (assignment_expression "uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000" identifier = (binary_expression "(long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000" (cast_expression "(long)(fVar29 - DAT_00420e38)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar29 - DAT_00420e38)" ( (binary_expression "fVar29 - DAT_00420e38" identifier - identifier) ))) ^ number_literal)) ;) }) (else_clause "else {\n                  uVar12 = (ulong)fVar29;\n                }" else (compound_statement "{\n                  uVar12 = (ulong)fVar29;\n                }" { (expression_statement "uVar12 = (ulong)fVar29;" (assignment_expression "uVar12 = (ulong)fVar29" identifier = (cast_expression "(ulong)fVar29" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }))) (expression_statement "fVar27 = fVar29;" (assignment_expression "fVar27 = fVar29" identifier = identifier) ;) (if_statement "if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }" if (parenthesized_expression "(uVar1 != uVar12)" ( (binary_expression "uVar1 != uVar12" identifier != identifier) )) (compound_statement "{\n                  fVar27 = fVar29 + DAT_00404988;\n                }" { (expression_statement "fVar27 = fVar29 + DAT_00404988;" (assignment_expression "fVar27 = fVar29 + DAT_00404988" identifier = (binary_expression "fVar29 + DAT_00404988" identifier + identifier)) ;) })) (expression_statement "dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;" (assignment_expression "dVar19 = dVar22 * (double)(long)local_20a8 * dVar19" identifier = (binary_expression "dVar22 * (double)(long)local_20a8 * dVar19" (binary_expression "dVar22 * (double)(long)local_20a8" identifier * (cast_expression "(double)(long)local_20a8" ( (type_descriptor "double" primitive_type) ) (cast_expression "(long)local_20a8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) * identifier)) ;) (expression_statement "uVar3 = (undefined4)((ulong)dVar19 >> 0x20);" (assignment_expression "uVar3 = (undefined4)((ulong)dVar19 >> 0x20)" identifier = (call_expression "(undefined4)((ulong)dVar19 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulong)dVar19 >> 0x20)" ( (binary_expression "(ulong)dVar19 >> 0x20" (cast_expression "(ulong)dVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "fVar21 = (float)dVar19;" (assignment_expression "fVar21 = (float)dVar19" identifier = (cast_expression "(float)dVar19" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "auVar20._4_4_ = uVar3;" (assignment_expression "auVar20._4_4_ = uVar3" (field_expression "auVar20._4_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auVar20._0_4_ = fVar21;" (assignment_expression "auVar20._0_4_ = fVar21" (field_expression "auVar20._0_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auVar20._8_8_ = 0;" (assignment_expression "auVar20._8_8_ = 0" (field_expression "auVar20._8_8_" identifier . field_identifier) = number_literal) ;) (if_statement "if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }" if (parenthesized_expression "((float)((uint)fVar21 & uVar5) < _DAT_0043b430)" ( (binary_expression "(float)((uint)fVar21 & uVar5) < _DAT_0043b430" (cast_expression "(float)((uint)fVar21 & uVar5)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((uint)fVar21 & uVar5)" ( (binary_expression "(uint)fVar21 & uVar5" (cast_expression "(uint)fVar21" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) ))) < identifier) )) (compound_statement "{\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }" { (expression_statement "auVar30._0_4_ = ~uVar5 & (uint)fVar21;" (assignment_expression "auVar30._0_4_ = ~uVar5 & (uint)fVar21" (field_expression "auVar30._0_4_" identifier . field_identifier) = (binary_expression "~uVar5 & (uint)fVar21" (unary_expression "~uVar5" ~ identifier) & (cast_expression "(uint)fVar21" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "auVar30._4_4_ = uVar3;" (assignment_expression "auVar30._4_4_ = uVar3" (field_expression "auVar30._4_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auVar30._8_8_ = 0;" (assignment_expression "auVar30._8_8_ = 0" (field_expression "auVar30._8_8_" identifier . field_identifier) = number_literal) ;) (expression_statement "auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;" (assignment_expression "auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30" identifier = (binary_expression "ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30" (call_expression "ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988)))" identifier (argument_list "((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988)))" ( (call_expression "(uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))" ( (binary_expression "(float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988)" (cast_expression "(float)(int)dVar19" ( (type_descriptor "float" primitive_type) ) (cast_expression "(int)dVar19" ( (type_descriptor "int" primitive_type) ) identifier)) - (cast_expression "(float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988)" ( (binary_expression "-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988" (unary_expression "-(uint)(fVar21 < (float)(int)dVar19)" - (call_expression "(uint)(fVar21 < (float)(int)dVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(fVar21 < (float)(int)dVar19)" ( (binary_expression "fVar21 < (float)(int)dVar19" identifier < (cast_expression "(float)(int)dVar19" ( (type_descriptor "float" primitive_type) ) (cast_expression "(int)dVar19" ( (type_descriptor "int" primitive_type) ) identifier))) )))) & (cast_expression "(uint)DAT_00404988" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ))) ))) | identifier)) ;) })) (expression_statement "fVar17 = auVar20._0_4_;" (assignment_expression "fVar17 = auVar20._0_4_" identifier = (field_expression "auVar20._0_4_" identifier . field_identifier)) ;) (if_statement "if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }" if (parenthesized_expression "(DAT_00420e38 <= fVar17)" ( (binary_expression "DAT_00420e38 <= fVar17" identifier <= identifier) )) (compound_statement "{\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }" { (expression_statement "uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;" (assignment_expression "uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000" identifier = (binary_expression "(long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000" (cast_expression "(long)(fVar17 - DAT_00420e38)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar17 - DAT_00420e38)" ( (binary_expression "fVar17 - DAT_00420e38" identifier - identifier) ))) ^ number_literal)) ;) }) (else_clause "else {\n                  uVar12 = (ulong)fVar17;\n                }" else (compound_statement "{\n                  uVar12 = (ulong)fVar17;\n                }" { (expression_statement "uVar12 = (ulong)fVar17;" (assignment_expression "uVar12 = (ulong)fVar17" identifier = (cast_expression "(ulong)fVar17" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }))) (if_statement "if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }" if (parenthesized_expression "(uVar1 != uVar12)" ( (binary_expression "uVar1 != uVar12" identifier != identifier) )) (compound_statement "{\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }" { (expression_statement "auVar20._0_4_ = fVar17 + DAT_00404988;" (assignment_expression "auVar20._0_4_ = fVar17 + DAT_00404988" (field_expression "auVar20._0_4_" identifier . field_identifier) = (binary_expression "fVar17 + DAT_00404988" identifier + identifier)) ;) })) (expression_statement "fVar31 = (float)uVar13;" (assignment_expression "fVar31 = (float)uVar13" identifier = (cast_expression "(float)uVar13" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "fVar28 = fVar17 * fVar31 * fVar31;" (assignment_expression "fVar28 = fVar17 * fVar31 * fVar31" identifier = (binary_expression "fVar17 * fVar31 * fVar31" (binary_expression "fVar17 * fVar31" identifier * identifier) * identifier)) ;) (expression_statement "fVar32 = fVar28 + fVar29 * fVar31;" (assignment_expression "fVar32 = fVar28 + fVar29 * fVar31" identifier = (binary_expression "fVar28 + fVar29 * fVar31" identifier + (binary_expression "fVar29 * fVar31" identifier * identifier))) ;) (expression_statement "pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);" (assignment_expression "pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc)" identifier = (cast_expression "(float *)((long)__s + (long)(fVar23 + fVar32) * 0xc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + (long)(fVar23 + fVar32) * 0xc)" ( (binary_expression "(long)__s + (long)(fVar23 + fVar32) * 0xc" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(long)(fVar23 + fVar32) * 0xc" (cast_expression "(long)(fVar23 + fVar32)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar23 + fVar32)" ( (binary_expression "fVar23 + fVar32" identifier + identifier) ))) * number_literal)) )))) ;) (expression_statement "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;" (assignment_expression "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400" (pointer_expression "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4)" * (cast_expression "(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4)" ( (binary_expression "lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4" identifier + (binary_expression "*(long *)(*(long *)(local_2060 + 0x360) + 8) * 4" (pointer_expression "*(long *)(*(long *)(local_2060 + 0x360) + 8)" * (cast_expression "(long *)(*(long *)(local_2060 + 0x360) + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(local_2060 + 0x360) + 8)" ( (binary_expression "*(long *)(local_2060 + 0x360) + 8" (pointer_expression "*(long *)(local_2060 + 0x360)" * (cast_expression "(long *)(local_2060 + 0x360)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2060 + 0x360)" ( (binary_expression "local_2060 + 0x360" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (binary_expression "((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400" (parenthesized_expression "((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2)" ( (binary_expression "(fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2" (binary_expression "(fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2)" (parenthesized_expression "(fVar26 - fVar23)" ( (binary_expression "fVar26 - fVar23" identifier - identifier) )) * (parenthesized_expression "(*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2)" ( (binary_expression "*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2" (pointer_expression "*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc)" * (cast_expression "(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + (long)(fVar32 + fVar33) * 0xc)" ( (binary_expression "(long)__s + (long)(fVar32 + fVar33) * 0xc" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(long)(fVar32 + fVar33) * 0xc" (cast_expression "(long)(fVar32 + fVar33)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar32 + fVar33)" ( (binary_expression "fVar32 + fVar33" identifier + identifier) ))) * number_literal)) )))) - (pointer_expression "*pfVar2" * identifier)) ))) + (pointer_expression "*pfVar2" * identifier)) )) * identifier)) ;) (expression_statement "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;" (assignment_expression "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4" (pointer_expression "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4)" * (cast_expression "(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4)" ( (binary_expression "lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4" identifier + (binary_expression "*(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4" (pointer_expression "*(long *)(*(long *)(local_2060 + 0x360) + 0x18)" * (cast_expression "(long *)(*(long *)(local_2060 + 0x360) + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(local_2060 + 0x360) + 0x18)" ( (binary_expression "*(long *)(local_2060 + 0x360) + 0x18" (pointer_expression "*(long *)(local_2060 + 0x360)" * (cast_expression "(long *)(local_2060 + 0x360)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2060 + 0x360)" ( (binary_expression "local_2060 + 0x360" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (binary_expression "((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4" (parenthesized_expression "((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1])" ( (binary_expression "(fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]" (binary_expression "(fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1])" (parenthesized_expression "(fVar24 - fVar29)" ( (binary_expression "fVar24 - fVar29" identifier - identifier) )) * (parenthesized_expression "(*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1])" ( (binary_expression "*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]" (pointer_expression "*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4)" * (cast_expression "(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4)" ( (binary_expression "(long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4" (binary_expression "(long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc" (cast_expression "(long)(fVar28 + fVar27 * fVar31 + fVar23)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar28 + fVar27 * fVar31 + fVar23)" ( (binary_expression "fVar28 + fVar27 * fVar31 + fVar23" (binary_expression "fVar28 + fVar27 * fVar31" identifier + (binary_expression "fVar27 * fVar31" identifier * identifier)) + identifier) ))) * number_literal)) + number_literal) )))) - (subscript_expression "pfVar2[1]" identifier [ number_literal ])) ))) + (subscript_expression "pfVar2[1]" identifier [ number_literal ])) )) * identifier)) ;) (expression_statement "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;" (assignment_expression "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4" (pointer_expression "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4)" * (cast_expression "(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4)" ( (binary_expression "lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4" identifier + (binary_expression "*(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4" (pointer_expression "*(long *)(*(long *)(local_2060 + 0x360) + 0x28)" * (cast_expression "(long *)(*(long *)(local_2060 + 0x360) + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(local_2060 + 0x360) + 0x28)" ( (binary_expression "*(long *)(local_2060 + 0x360) + 0x28" (pointer_expression "*(long *)(local_2060 + 0x360)" * (cast_expression "(long *)(local_2060 + 0x360)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2060 + 0x360)" ( (binary_expression "local_2060 + 0x360" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (binary_expression "((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4" (parenthesized_expression "((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2])" ( (binary_expression "(fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]" (binary_expression "(fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2])" (parenthesized_expression "(fVar21 - fVar17)" ( (binary_expression "fVar21 - fVar17" identifier - identifier) )) * (parenthesized_expression "(*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2])" ( (binary_expression "*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]" (pointer_expression "*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8)" * (cast_expression "(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8)" ( (binary_expression "(long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8" (binary_expression "(long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc" (cast_expression "(long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)" ( (binary_expression "fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31" (binary_expression "fVar23 + fVar29 * fVar31" identifier + (binary_expression "fVar29 * fVar31" identifier * identifier)) + (binary_expression "fVar31 * auVar20._0_4_ * fVar31" (binary_expression "fVar31 * auVar20._0_4_" identifier * (field_expression "auVar20._0_4_" identifier . field_identifier)) * identifier)) ))) * number_literal)) + number_literal) )))) - (subscript_expression "pfVar2[2]" identifier [ number_literal ])) ))) + (subscript_expression "pfVar2[2]" identifier [ number_literal ])) )) * identifier)) ;) (expression_statement "lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;" (assignment_expression "lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4" identifier = (binary_expression "lVar15 + *(long *)(local_2060 + 0x340) * 4" identifier + (binary_expression "*(long *)(local_2060 + 0x340) * 4" (pointer_expression "*(long *)(local_2060 + 0x340)" * (cast_expression "(long *)(local_2060 + 0x340)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2060 + 0x340)" ( (binary_expression "local_2060 + 0x340" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar11 != uVar16)" ( (binary_expression "uVar11 != uVar16" identifier != identifier) )) ;) (expression_statement "iVar7 = SyncAuthenticPixels(local_2060,param_2);" (assignment_expression "iVar7 = SyncAuthenticPixels(local_2060,param_2)" identifier = (call_expression "SyncAuthenticPixels(local_2060,param_2)" identifier (argument_list "(local_2060,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar7 = iVar6;\n              }" { (expression_statement "iVar7 = iVar6;" (assignment_expression "iVar7 = iVar6" identifier = identifier) ;) })) }))) })) (expression_statement "iVar6 = iVar7;" (assignment_expression "iVar6 = iVar7" identifier = identifier) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar14 != uVar16)" ( (binary_expression "uVar14 != uVar16" identifier != identifier) )) ;) })) (expression_statement "local_20a8 = local_20a8 + 1;" (assignment_expression "local_20a8 = local_20a8 + 1" identifier = (binary_expression "local_20a8 + 1" identifier + number_literal)) ;) (expression_statement "local_2070 = local_2070 + local_2080;" (assignment_expression "local_2070 = local_2070 + local_2080" identifier = (binary_expression "local_2070 + local_2080" identifier + identifier)) ;) }) while (parenthesized_expression "(local_20a8 != uVar16)" ( (binary_expression "local_20a8 != uVar16" identifier != identifier) )) ;) (expression_statement "RelinquishVirtualMemory(local_20a0);" (call_expression "RelinquishVirtualMemory(local_20a0)" identifier (argument_list "(local_20a0)" ( identifier ))) ;) (expression_statement "CloseBlob(local_2060);" (call_expression "CloseBlob(local_2060)" identifier (argument_list "(local_2060)" ( identifier ))) ;) (if_statement "if (iVar6 == 0) {\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }" { (expression_statement "lVar15 = DestroyImageList(local_2060);" (assignment_expression "lVar15 = DestroyImageList(local_2060)" identifier = (call_expression "DestroyImageList(local_2060)" identifier (argument_list "(local_2060)" ( identifier )))) ;) (goto_statement "goto LAB_0033a403;" goto statement_identifier ;) })) }))) (if_statement "if (0 < *(long *)(param_1 + 0x38)) {\n    lVar15 = 0;\n    do {\n      uVar10 = CloneImage(local_2060,0,0,1,param_2);\n      AppendImageToList(&local_2060,uVar10);\n      lVar15 = lVar15 + 1;\n    } while (lVar15 < *(long *)(param_1 + 0x38));\n  }" if (parenthesized_expression "(0 < *(long *)(param_1 + 0x38))" ( (binary_expression "0 < *(long *)(param_1 + 0x38)" number_literal < (pointer_expression "*(long *)(param_1 + 0x38)" * (cast_expression "(long *)(param_1 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\n    lVar15 = 0;\n    do {\n      uVar10 = CloneImage(local_2060,0,0,1,param_2);\n      AppendImageToList(&local_2060,uVar10);\n      lVar15 = lVar15 + 1;\n    } while (lVar15 < *(long *)(param_1 + 0x38));\n  }" { (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar10 = CloneImage(local_2060,0,0,1,param_2);\n      AppendImageToList(&local_2060,uVar10);\n      lVar15 = lVar15 + 1;\n    } while (lVar15 < *(long *)(param_1 + 0x38));" do (compound_statement "{\n      uVar10 = CloneImage(local_2060,0,0,1,param_2);\n      AppendImageToList(&local_2060,uVar10);\n      lVar15 = lVar15 + 1;\n    }" { (expression_statement "uVar10 = CloneImage(local_2060,0,0,1,param_2);" (assignment_expression "uVar10 = CloneImage(local_2060,0,0,1,param_2)" identifier = (call_expression "CloneImage(local_2060,0,0,1,param_2)" identifier (argument_list "(local_2060,0,0,1,param_2)" ( identifier , number_literal , number_literal , number_literal , identifier )))) ;) (expression_statement "AppendImageToList(&local_2060,uVar10);" (call_expression "AppendImageToList(&local_2060,uVar10)" identifier (argument_list "(&local_2060,uVar10)" ( (pointer_expression "&local_2060" & identifier) , identifier ))) ;) (expression_statement "lVar15 = lVar15 + 1;" (assignment_expression "lVar15 = lVar15 + 1" identifier = (binary_expression "lVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar15 < *(long *)(param_1 + 0x38))" ( (binary_expression "lVar15 < *(long *)(param_1 + 0x38)" identifier < (pointer_expression "*(long *)(param_1 + 0x38)" * (cast_expression "(long *)(param_1 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) )) ;) })) (expression_statement "lVar15 = GetFirstImageInList(local_2060);" (assignment_expression "lVar15 = GetFirstImageInList(local_2060)" identifier = (call_expression "GetFirstImageInList(local_2060)" identifier (argument_list "(local_2060)" ( identifier )))) ;) (labeled_statement "LAB_0033a403:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return lVar15;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return lVar15;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return lVar15;\n  }" { (return_statement "return lVar15;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n/* WARNING: Enum "LogEventType": Some values do not have unique names */\n\nImage * ReadCUBEImage(ImageInfo *image_info,ExceptionInfo *exception)\n\n{\n  ulong uVar1;\n  float *pfVar2;\n  long lVar3;\n  float fVar4;\n  uint uVar5;\n  MagickBooleanType MVar6;\n  int iVar7;\n  MagickBooleanType MVar8;\n  char *string;\n  char *pcVar9;\n  long lVar10;\n  Image *pIVar11;\n  size_t sVar12;\n  Quantum *pQVar13;\n  ulong uVar14;\n  ulong uVar15;\n  void *__s;\n  ulong uVar16;\n  long lVar17;\n  size_t columns;\n  long in_FS_OFFSET;\n  float fVar18;\n  double dVar19;\n  double dVar20;\n  float fVar21;\n  double dVar22;\n  float fVar23;\n  float fVar24;\n  double dVar25;\n  float fVar26;\n  float fVar27;\n  float fVar28;\n  float fVar29;\n  float fVar30;\n  float fVar31;\n  float fVar32;\n  float fVar33;\n  double dVar34;\n  double dVar35;\n  double dVar36;\n  size_t local_20a8;\n  MemoryInfo *local_20a0;\n  ulong local_2080;\n  long local_2070;\n  Image *image;\n  char *q;\n  char *r;\n  char token [4096];\n  char value [4096];\n  \n  lVar3 = *(long *)(in_FS_OFFSET + 0x28);\n  if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");\n  }\n  if (image_info->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"coders/cube.c","ReadCUBEImage",0x91,"%s",image_info->filename);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );\n  }\n  image = AcquireImage(image_info,exception);\n  MVar6 = OpenBlob(image_info,image,ReadBinaryBlobMode,exception);\n  if (MVar6 == MagickFalse) {\n    DestroyImageList(image);\n    pIVar11 = (Image *)0x0;\n    goto LAB_0033a403;\n  }\n  string = AcquireString("");\n  *string = '\0';\n  lVar17 = 0;\n  uVar15 = 0;\n  local_20a0 = (MemoryInfo *)0x0;\n  __s = (void *)0x0;\nLAB_0033a25a:\n  do {\n    do {\n      pcVar9 = ReadBlobString(image,string);\n      if (pcVar9 == (char *)0x0) goto LAB_0033a378;\n      q = string;\n      GetNextToken(string,&q,0x1000,token);\n    } while ((token[0] == '#') || (token[0] == '\0'));\n    iVar7 = LocaleCompare(token,"LUT_1D_SIZE");\n    if (((iVar7 == 0) || (iVar7 = LocaleCompare(token,"LUT_3D_SIZE"), iVar7 == 0)) &&\n       (local_20a0 == (MemoryInfo *)0x0)) {\n      GetNextToken(q,&q,0x1000,value);\n      uVar15 = strtol(value,(char **)0x0,10);\n      iVar7 = LocaleCompare(token,"LUT_1D_SIZE");\n      if (iVar7 == 0) {\n        dVar19 = pow((double)uVar15,DAT_00406790);\n        if ((double)((ulong)dVar19 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar19 = (double)((ulong)((double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar19) |\n                           ~DAT_003f9c70 & (ulong)dVar19);\n        }\n        if (DAT_003f9c40 <= dVar19) {\n          uVar15 = (long)(dVar19 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar15 = (ulong)dVar19;\n        }\n      }\n      if (uVar15 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar15 * uVar15,uVar15 * 0xc);\n        if (local_20a0 != (MemoryInfo *)0x0) {\n          __s = GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar15 * 0xc * uVar15 * uVar15);\n          goto LAB_0033a25a;\n        }\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xbe,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }\n      else {\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xb7,CorruptImageError,\n                   "ImproperImageHeader","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }\n      pIVar11 = (Image *)0x0;\n      goto LAB_0033a403;\n    }\n    iVar7 = LocaleCompare(token,"TITLE ");\n    if (iVar7 == 0) {\n      GetNextToken(q,&q,0x1000,value);\n      SetImageProperty(image,"title",value,exception);\n      goto LAB_0033a25a;\n    }\n    if (uVar15 != 0) {\n      lVar10 = uVar15 * uVar15 * uVar15;\n      if (lVar10 - lVar17 == 0 || lVar10 < lVar17) break;\n      r = string;\n      dVar19 = InterpretLocaleValue(string,&r);\n      pfVar2 = (float *)((long)__s + lVar17 * 0xc);\n      *pfVar2 = (float)dVar19;\n      dVar19 = InterpretLocaleValue(r,&r);\n      pfVar2[1] = (float)dVar19;\n      dVar19 = InterpretLocaleValue(r,&r);\n      pfVar2[2] = (float)dVar19;\n      lVar17 = lVar17 + 1;\n      goto LAB_0033a25a;\n    }\n  } while (0xd < (byte)(*string - 0x2cU));\nLAB_0033a378:\n  DestroyString(string);\n  if (uVar15 == 0) {\n    if (local_20a0 != (MemoryInfo *)0x0) {\n      RelinquishVirtualMemory(local_20a0);\n    }\n    ThrowMagickException\n              (exception,"coders/cube.c","ReadCUBEImage",0xe0,CorruptImageError,\n               "ImproperImageHeader","`%s\'",image_info->filename);\n    pIVar11 = image;\n    if (image != (Image *)0x0) {\n      CloseBlob(image);\n      DestroyImageList(image);\n      pIVar11 = (Image *)0x0;\n    }\n    goto LAB_0033a403;\n  }\n  local_2080 = image_info->scene;\n  if (local_2080 - 2 < 0xff) {\n    columns = local_2080 * local_2080;\n    sVar12 = local_2080 * columns;\n    image->columns = sVar12;\n    image->rows = sVar12;\n    MVar6 = SetImageExtent(image,sVar12,sVar12,exception);\n    if (MVar6 == MagickFalse) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      pIVar11 = DestroyImageList(image);\n      goto LAB_0033a403;\n    }\n    if (0 < (long)columns) goto LAB_0033ab1a;\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(image);\n  }\n  else {\n    image->columns = 0x200;\n    image->rows = 0x200;\n    MVar6 = SetImageExtent(image,0x200,0x200,exception);\n    if (MVar6 == MagickFalse) goto LAB_0033a49e;\n    columns = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (MVar6 != MagickFalse) {\n        uVar16 = 0;\n        do {\n          MVar8 = MVar6;\n          if (MVar6 != MagickFalse) {\n            pQVar13 = QueueAuthenticPixels\n                                (image,(uVar16 % local_2080) * columns,\n                                 (uVar16 / local_2080) % columns + local_2070,columns,1,exception);\n            uVar5 = DAT_0043b420;\n            if (pQVar13 == (Quantum *)0x0) {\n              MVar8 = MagickFalse;\n            }\n            else {\n              dVar35 = (double)columns - DAT_003f9608;\n              dVar19 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar19 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              sVar12 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar19 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar19 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar20 = (double)uVar15 - DAT_003f9608;\n                dVar22 = (double)(long)sVar12 * dVar22 * dVar20;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar15 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar14 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar16 * dVar22 * dVar20;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar14) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;\n                fVar21 = (float)dVar20;\n                fVar30 = fVar21;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }\n                if (DAT_00420e38 <= fVar30) {\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar30;\n                }\n                fVar18 = fVar30;\n                if (uVar1 != uVar14) {\n                  fVar18 = fVar30 + DAT_00404988;\n                }\n                fVar31 = (float)uVar15;\n                fVar28 = fVar30 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                pQVar13 = pQVar13 + image->number_channels;\n                sVar12 = sVar12 + 1;\n              } while (sVar12 != columns);\n              MVar8 = SyncAuthenticPixels(image,exception);\n              if (MVar8 != MagickFalse) {\n                MVar8 = MVar6;\n              }\n            }\n          }\n          MVar6 = MVar8;\n          uVar16 = uVar16 + 1;\n        } while (uVar16 != columns);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != columns);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(image);\n    if (MVar6 == MagickFalse) {\n      pIVar11 = DestroyImageList(image);\n      goto LAB_0033a403;\n    }\n  }\n  if (0 < (long)image_info->scene) {\n    lVar17 = 0;\n    do {\n      pIVar11 = CloneImage(image,0,0,MagickTrue,exception);\n      AppendImageToList(&image,pIVar11);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 < (long)image_info->scene);\n  }\n  pIVar11 = GetFirstImageInList(image);\nLAB_0033a403:\n  if (lVar3 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return pIVar11;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" comment comment comment comment comment comment comment (function_definition "Image * ReadCUBEImage(ImageInfo *image_info,ExceptionInfo *exception)\n\n{\n  ulong uVar1;\n  float *pfVar2;\n  long lVar3;\n  float fVar4;\n  uint uVar5;\n  MagickBooleanType MVar6;\n  int iVar7;\n  MagickBooleanType MVar8;\n  char *string;\n  char *pcVar9;\n  long lVar10;\n  Image *pIVar11;\n  size_t sVar12;\n  Quantum *pQVar13;\n  ulong uVar14;\n  ulong uVar15;\n  void *__s;\n  ulong uVar16;\n  long lVar17;\n  size_t columns;\n  long in_FS_OFFSET;\n  float fVar18;\n  double dVar19;\n  double dVar20;\n  float fVar21;\n  double dVar22;\n  float fVar23;\n  float fVar24;\n  double dVar25;\n  float fVar26;\n  float fVar27;\n  float fVar28;\n  float fVar29;\n  float fVar30;\n  float fVar31;\n  float fVar32;\n  float fVar33;\n  double dVar34;\n  double dVar35;\n  double dVar36;\n  size_t local_20a8;\n  MemoryInfo *local_20a0;\n  ulong local_2080;\n  long local_2070;\n  Image *image;\n  char *q;\n  char *r;\n  char token [4096];\n  char value [4096];\n  \n  lVar3 = *(long *)(in_FS_OFFSET + 0x28);\n  if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");\n  }\n  if (image_info->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"coders/cube.c","ReadCUBEImage",0x91,"%s",image_info->filename);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );\n  }\n  image = AcquireImage(image_info,exception);\n  MVar6 = OpenBlob(image_info,image,ReadBinaryBlobMode,exception);\n  if (MVar6 == MagickFalse) {\n    DestroyImageList(image);\n    pIVar11 = (Image *)0x0;\n    goto LAB_0033a403;\n  }\n  string = AcquireString("");\n  *string = '\0';\n  lVar17 = 0;\n  uVar15 = 0;\n  local_20a0 = (MemoryInfo *)0x0;\n  __s = (void *)0x0;\nLAB_0033a25a:\n  do {\n    do {\n      pcVar9 = ReadBlobString(image,string);\n      if (pcVar9 == (char *)0x0) goto LAB_0033a378;\n      q = string;\n      GetNextToken(string,&q,0x1000,token);\n    } while ((token[0] == '#') || (token[0] == '\0'));\n    iVar7 = LocaleCompare(token,"LUT_1D_SIZE");\n    if (((iVar7 == 0) || (iVar7 = LocaleCompare(token,"LUT_3D_SIZE"), iVar7 == 0)) &&\n       (local_20a0 == (MemoryInfo *)0x0)) {\n      GetNextToken(q,&q,0x1000,value);\n      uVar15 = strtol(value,(char **)0x0,10);\n      iVar7 = LocaleCompare(token,"LUT_1D_SIZE");\n      if (iVar7 == 0) {\n        dVar19 = pow((double)uVar15,DAT_00406790);\n        if ((double)((ulong)dVar19 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar19 = (double)((ulong)((double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar19) |\n                           ~DAT_003f9c70 & (ulong)dVar19);\n        }\n        if (DAT_003f9c40 <= dVar19) {\n          uVar15 = (long)(dVar19 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar15 = (ulong)dVar19;\n        }\n      }\n      if (uVar15 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar15 * uVar15,uVar15 * 0xc);\n        if (local_20a0 != (MemoryInfo *)0x0) {\n          __s = GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar15 * 0xc * uVar15 * uVar15);\n          goto LAB_0033a25a;\n        }\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xbe,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }\n      else {\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xb7,CorruptImageError,\n                   "ImproperImageHeader","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }\n      pIVar11 = (Image *)0x0;\n      goto LAB_0033a403;\n    }\n    iVar7 = LocaleCompare(token,"TITLE ");\n    if (iVar7 == 0) {\n      GetNextToken(q,&q,0x1000,value);\n      SetImageProperty(image,"title",value,exception);\n      goto LAB_0033a25a;\n    }\n    if (uVar15 != 0) {\n      lVar10 = uVar15 * uVar15 * uVar15;\n      if (lVar10 - lVar17 == 0 || lVar10 < lVar17) break;\n      r = string;\n      dVar19 = InterpretLocaleValue(string,&r);\n      pfVar2 = (float *)((long)__s + lVar17 * 0xc);\n      *pfVar2 = (float)dVar19;\n      dVar19 = InterpretLocaleValue(r,&r);\n      pfVar2[1] = (float)dVar19;\n      dVar19 = InterpretLocaleValue(r,&r);\n      pfVar2[2] = (float)dVar19;\n      lVar17 = lVar17 + 1;\n      goto LAB_0033a25a;\n    }\n  } while (0xd < (byte)(*string - 0x2cU));\nLAB_0033a378:\n  DestroyString(string);\n  if (uVar15 == 0) {\n    if (local_20a0 != (MemoryInfo *)0x0) {\n      RelinquishVirtualMemory(local_20a0);\n    }\n    ThrowMagickException\n              (exception,"coders/cube.c","ReadCUBEImage",0xe0,CorruptImageError,\n               "ImproperImageHeader","`%s\'",image_info->filename);\n    pIVar11 = image;\n    if (image != (Image *)0x0) {\n      CloseBlob(image);\n      DestroyImageList(image);\n      pIVar11 = (Image *)0x0;\n    }\n    goto LAB_0033a403;\n  }\n  local_2080 = image_info->scene;\n  if (local_2080 - 2 < 0xff) {\n    columns = local_2080 * local_2080;\n    sVar12 = local_2080 * columns;\n    image->columns = sVar12;\n    image->rows = sVar12;\n    MVar6 = SetImageExtent(image,sVar12,sVar12,exception);\n    if (MVar6 == MagickFalse) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      pIVar11 = DestroyImageList(image);\n      goto LAB_0033a403;\n    }\n    if (0 < (long)columns) goto LAB_0033ab1a;\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(image);\n  }\n  else {\n    image->columns = 0x200;\n    image->rows = 0x200;\n    MVar6 = SetImageExtent(image,0x200,0x200,exception);\n    if (MVar6 == MagickFalse) goto LAB_0033a49e;\n    columns = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (MVar6 != MagickFalse) {\n        uVar16 = 0;\n        do {\n          MVar8 = MVar6;\n          if (MVar6 != MagickFalse) {\n            pQVar13 = QueueAuthenticPixels\n                                (image,(uVar16 % local_2080) * columns,\n                                 (uVar16 / local_2080) % columns + local_2070,columns,1,exception);\n            uVar5 = DAT_0043b420;\n            if (pQVar13 == (Quantum *)0x0) {\n              MVar8 = MagickFalse;\n            }\n            else {\n              dVar35 = (double)columns - DAT_003f9608;\n              dVar19 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar19 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              sVar12 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar19 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar19 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar20 = (double)uVar15 - DAT_003f9608;\n                dVar22 = (double)(long)sVar12 * dVar22 * dVar20;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar15 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar14 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar16 * dVar22 * dVar20;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar14) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;\n                fVar21 = (float)dVar20;\n                fVar30 = fVar21;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }\n                if (DAT_00420e38 <= fVar30) {\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar30;\n                }\n                fVar18 = fVar30;\n                if (uVar1 != uVar14) {\n                  fVar18 = fVar30 + DAT_00404988;\n                }\n                fVar31 = (float)uVar15;\n                fVar28 = fVar30 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                pQVar13 = pQVar13 + image->number_channels;\n                sVar12 = sVar12 + 1;\n              } while (sVar12 != columns);\n              MVar8 = SyncAuthenticPixels(image,exception);\n              if (MVar8 != MagickFalse) {\n                MVar8 = MVar6;\n              }\n            }\n          }\n          MVar6 = MVar8;\n          uVar16 = uVar16 + 1;\n        } while (uVar16 != columns);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != columns);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(image);\n    if (MVar6 == MagickFalse) {\n      pIVar11 = DestroyImageList(image);\n      goto LAB_0033a403;\n    }\n  }\n  if (0 < (long)image_info->scene) {\n    lVar17 = 0;\n    do {\n      pIVar11 = CloneImage(image,0,0,MagickTrue,exception);\n      AppendImageToList(&image,pIVar11);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 < (long)image_info->scene);\n  }\n  pIVar11 = GetFirstImageInList(image);\nLAB_0033a403:\n  if (lVar3 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return pIVar11;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" type_identifier (pointer_declarator "* ReadCUBEImage(ImageInfo *image_info,ExceptionInfo *exception)" * (function_declarator "ReadCUBEImage(ImageInfo *image_info,ExceptionInfo *exception)" identifier (parameter_list "(ImageInfo *image_info,ExceptionInfo *exception)" ( (parameter_declaration "ImageInfo *image_info" type_identifier (pointer_declarator "*image_info" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) )))) (compound_statement "{\n  ulong uVar1;\n  float *pfVar2;\n  long lVar3;\n  float fVar4;\n  uint uVar5;\n  MagickBooleanType MVar6;\n  int iVar7;\n  MagickBooleanType MVar8;\n  char *string;\n  char *pcVar9;\n  long lVar10;\n  Image *pIVar11;\n  size_t sVar12;\n  Quantum *pQVar13;\n  ulong uVar14;\n  ulong uVar15;\n  void *__s;\n  ulong uVar16;\n  long lVar17;\n  size_t columns;\n  long in_FS_OFFSET;\n  float fVar18;\n  double dVar19;\n  double dVar20;\n  float fVar21;\n  double dVar22;\n  float fVar23;\n  float fVar24;\n  double dVar25;\n  float fVar26;\n  float fVar27;\n  float fVar28;\n  float fVar29;\n  float fVar30;\n  float fVar31;\n  float fVar32;\n  float fVar33;\n  double dVar34;\n  double dVar35;\n  double dVar36;\n  size_t local_20a8;\n  MemoryInfo *local_20a0;\n  ulong local_2080;\n  long local_2070;\n  Image *image;\n  char *q;\n  char *r;\n  char token [4096];\n  char value [4096];\n  \n  lVar3 = *(long *)(in_FS_OFFSET + 0x28);\n  if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");\n  }\n  if (image_info->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"coders/cube.c","ReadCUBEImage",0x91,"%s",image_info->filename);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );\n  }\n  image = AcquireImage(image_info,exception);\n  MVar6 = OpenBlob(image_info,image,ReadBinaryBlobMode,exception);\n  if (MVar6 == MagickFalse) {\n    DestroyImageList(image);\n    pIVar11 = (Image *)0x0;\n    goto LAB_0033a403;\n  }\n  string = AcquireString("");\n  *string = '\0';\n  lVar17 = 0;\n  uVar15 = 0;\n  local_20a0 = (MemoryInfo *)0x0;\n  __s = (void *)0x0;\nLAB_0033a25a:\n  do {\n    do {\n      pcVar9 = ReadBlobString(image,string);\n      if (pcVar9 == (char *)0x0) goto LAB_0033a378;\n      q = string;\n      GetNextToken(string,&q,0x1000,token);\n    } while ((token[0] == '#') || (token[0] == '\0'));\n    iVar7 = LocaleCompare(token,"LUT_1D_SIZE");\n    if (((iVar7 == 0) || (iVar7 = LocaleCompare(token,"LUT_3D_SIZE"), iVar7 == 0)) &&\n       (local_20a0 == (MemoryInfo *)0x0)) {\n      GetNextToken(q,&q,0x1000,value);\n      uVar15 = strtol(value,(char **)0x0,10);\n      iVar7 = LocaleCompare(token,"LUT_1D_SIZE");\n      if (iVar7 == 0) {\n        dVar19 = pow((double)uVar15,DAT_00406790);\n        if ((double)((ulong)dVar19 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar19 = (double)((ulong)((double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar19) |\n                           ~DAT_003f9c70 & (ulong)dVar19);\n        }\n        if (DAT_003f9c40 <= dVar19) {\n          uVar15 = (long)(dVar19 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar15 = (ulong)dVar19;\n        }\n      }\n      if (uVar15 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar15 * uVar15,uVar15 * 0xc);\n        if (local_20a0 != (MemoryInfo *)0x0) {\n          __s = GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar15 * 0xc * uVar15 * uVar15);\n          goto LAB_0033a25a;\n        }\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xbe,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }\n      else {\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xb7,CorruptImageError,\n                   "ImproperImageHeader","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }\n      pIVar11 = (Image *)0x0;\n      goto LAB_0033a403;\n    }\n    iVar7 = LocaleCompare(token,"TITLE ");\n    if (iVar7 == 0) {\n      GetNextToken(q,&q,0x1000,value);\n      SetImageProperty(image,"title",value,exception);\n      goto LAB_0033a25a;\n    }\n    if (uVar15 != 0) {\n      lVar10 = uVar15 * uVar15 * uVar15;\n      if (lVar10 - lVar17 == 0 || lVar10 < lVar17) break;\n      r = string;\n      dVar19 = InterpretLocaleValue(string,&r);\n      pfVar2 = (float *)((long)__s + lVar17 * 0xc);\n      *pfVar2 = (float)dVar19;\n      dVar19 = InterpretLocaleValue(r,&r);\n      pfVar2[1] = (float)dVar19;\n      dVar19 = InterpretLocaleValue(r,&r);\n      pfVar2[2] = (float)dVar19;\n      lVar17 = lVar17 + 1;\n      goto LAB_0033a25a;\n    }\n  } while (0xd < (byte)(*string - 0x2cU));\nLAB_0033a378:\n  DestroyString(string);\n  if (uVar15 == 0) {\n    if (local_20a0 != (MemoryInfo *)0x0) {\n      RelinquishVirtualMemory(local_20a0);\n    }\n    ThrowMagickException\n              (exception,"coders/cube.c","ReadCUBEImage",0xe0,CorruptImageError,\n               "ImproperImageHeader","`%s\'",image_info->filename);\n    pIVar11 = image;\n    if (image != (Image *)0x0) {\n      CloseBlob(image);\n      DestroyImageList(image);\n      pIVar11 = (Image *)0x0;\n    }\n    goto LAB_0033a403;\n  }\n  local_2080 = image_info->scene;\n  if (local_2080 - 2 < 0xff) {\n    columns = local_2080 * local_2080;\n    sVar12 = local_2080 * columns;\n    image->columns = sVar12;\n    image->rows = sVar12;\n    MVar6 = SetImageExtent(image,sVar12,sVar12,exception);\n    if (MVar6 == MagickFalse) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      pIVar11 = DestroyImageList(image);\n      goto LAB_0033a403;\n    }\n    if (0 < (long)columns) goto LAB_0033ab1a;\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(image);\n  }\n  else {\n    image->columns = 0x200;\n    image->rows = 0x200;\n    MVar6 = SetImageExtent(image,0x200,0x200,exception);\n    if (MVar6 == MagickFalse) goto LAB_0033a49e;\n    columns = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (MVar6 != MagickFalse) {\n        uVar16 = 0;\n        do {\n          MVar8 = MVar6;\n          if (MVar6 != MagickFalse) {\n            pQVar13 = QueueAuthenticPixels\n                                (image,(uVar16 % local_2080) * columns,\n                                 (uVar16 / local_2080) % columns + local_2070,columns,1,exception);\n            uVar5 = DAT_0043b420;\n            if (pQVar13 == (Quantum *)0x0) {\n              MVar8 = MagickFalse;\n            }\n            else {\n              dVar35 = (double)columns - DAT_003f9608;\n              dVar19 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar19 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              sVar12 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar19 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar19 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar20 = (double)uVar15 - DAT_003f9608;\n                dVar22 = (double)(long)sVar12 * dVar22 * dVar20;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar15 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar14 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar16 * dVar22 * dVar20;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar14) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;\n                fVar21 = (float)dVar20;\n                fVar30 = fVar21;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }\n                if (DAT_00420e38 <= fVar30) {\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar30;\n                }\n                fVar18 = fVar30;\n                if (uVar1 != uVar14) {\n                  fVar18 = fVar30 + DAT_00404988;\n                }\n                fVar31 = (float)uVar15;\n                fVar28 = fVar30 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                pQVar13 = pQVar13 + image->number_channels;\n                sVar12 = sVar12 + 1;\n              } while (sVar12 != columns);\n              MVar8 = SyncAuthenticPixels(image,exception);\n              if (MVar8 != MagickFalse) {\n                MVar8 = MVar6;\n              }\n            }\n          }\n          MVar6 = MVar8;\n          uVar16 = uVar16 + 1;\n        } while (uVar16 != columns);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != columns);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(image);\n    if (MVar6 == MagickFalse) {\n      pIVar11 = DestroyImageList(image);\n      goto LAB_0033a403;\n    }\n  }\n  if (0 < (long)image_info->scene) {\n    lVar17 = 0;\n    do {\n      pIVar11 = CloneImage(image,0,0,MagickTrue,exception);\n      AppendImageToList(&image,pIVar11);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 < (long)image_info->scene);\n  }\n  pIVar11 = GetFirstImageInList(image);\nLAB_0033a403:\n  if (lVar3 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return pIVar11;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "float *pfVar2;" primitive_type (pointer_declarator "*pfVar2" * identifier) ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "float fVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "MagickBooleanType MVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "MagickBooleanType MVar8;" type_identifier identifier ;) (declaration "char *string;" primitive_type (pointer_declarator "*string" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "Image *pIVar11;" type_identifier (pointer_declarator "*pIVar11" * identifier) ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "Quantum *pQVar13;" type_identifier (pointer_declarator "*pQVar13" * identifier) ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "ulong uVar15;" type_identifier identifier ;) (declaration "void *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "ulong uVar16;" type_identifier identifier ;) (declaration "long lVar17;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t columns;" primitive_type identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "float fVar18;" primitive_type identifier ;) (declaration "double dVar19;" primitive_type identifier ;) (declaration "double dVar20;" primitive_type identifier ;) (declaration "float fVar21;" primitive_type identifier ;) (declaration "double dVar22;" primitive_type identifier ;) (declaration "float fVar23;" primitive_type identifier ;) (declaration "float fVar24;" primitive_type identifier ;) (declaration "double dVar25;" primitive_type identifier ;) (declaration "float fVar26;" primitive_type identifier ;) (declaration "float fVar27;" primitive_type identifier ;) (declaration "float fVar28;" primitive_type identifier ;) (declaration "float fVar29;" primitive_type identifier ;) (declaration "float fVar30;" primitive_type identifier ;) (declaration "float fVar31;" primitive_type identifier ;) (declaration "float fVar32;" primitive_type identifier ;) (declaration "float fVar33;" primitive_type identifier ;) (declaration "double dVar34;" primitive_type identifier ;) (declaration "double dVar35;" primitive_type identifier ;) (declaration "double dVar36;" primitive_type identifier ;) (declaration "size_t local_20a8;" primitive_type identifier ;) (declaration "MemoryInfo *local_20a0;" type_identifier (pointer_declarator "*local_20a0" * identifier) ;) (declaration "ulong local_2080;" type_identifier identifier ;) (declaration "long local_2070;" (sized_type_specifier "long" long) identifier ;) (declaration "Image *image;" type_identifier (pointer_declarator "*image" * identifier) ;) (declaration "char *q;" primitive_type (pointer_declarator "*q" * identifier) ;) (declaration "char *r;" primitive_type (pointer_declarator "*r" * identifier) ;) (declaration "char token [4096];" primitive_type (array_declarator "token [4096]" identifier [ number_literal ]) ;) (declaration "char value [4096];" primitive_type (array_declarator "value [4096]" identifier [ number_literal ]) ;) (expression_statement "lVar3 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar3 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");\n  }" if (parenthesized_expression "(image_info == (ImageInfo *)0x0)" ( (binary_expression "image_info == (ImageInfo *)0x0" identifier == (cast_expression "(ImageInfo *)0x0" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");\n  }" { comment (expression_statement "__assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");" (call_expression "__assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage")" identifier (argument_list "("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage")" ( (string_literal ""image_info != (const ImageInfo *) NULL"" " string_content ") , (string_literal ""coders/cube.c"" " string_content ") , number_literal , (string_literal ""ReadCUBEImage"" " string_content ") ))) ;) })) (if_statement "if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");\n  }" if (parenthesized_expression "(image_info->signature != 0xabacadab)" ( (binary_expression "image_info->signature != 0xabacadab" (field_expression "image_info->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");\n  }" { comment (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage")" identifier (argument_list "("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage")" ( (string_literal ""image_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/cube.c"" " string_content ") , number_literal , (string_literal ""ReadCUBEImage"" " string_content ") ))) ;) })) (if_statement "if (image_info->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"coders/cube.c","ReadCUBEImage",0x91,"%s",image_info->filename);\n  }" if (parenthesized_expression "(image_info->debug != MagickFalse)" ( (binary_expression "image_info->debug != MagickFalse" (field_expression "image_info->debug" identifier -> field_identifier) != identifier) )) (compound_statement "{\n    LogMagickEvent(TraceEvent,"coders/cube.c","ReadCUBEImage",0x91,"%s",image_info->filename);\n  }" { (expression_statement "LogMagickEvent(TraceEvent,"coders/cube.c","ReadCUBEImage",0x91,"%s",image_info->filename);" (call_expression "LogMagickEvent(TraceEvent,"coders/cube.c","ReadCUBEImage",0x91,"%s",image_info->filename)" identifier (argument_list "(TraceEvent,"coders/cube.c","ReadCUBEImage",0x91,"%s",image_info->filename)" ( identifier , (string_literal ""coders/cube.c"" " string_content ") , (string_literal ""ReadCUBEImage"" " string_content ") , number_literal , (string_literal ""%s"" " string_content ") , (field_expression "image_info->filename" identifier -> field_identifier) ))) ;) })) (if_statement "if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");\n  }" if (parenthesized_expression "(exception == (ExceptionInfo *)0x0)" ( (binary_expression "exception == (ExceptionInfo *)0x0" identifier == (cast_expression "(ExceptionInfo *)0x0" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");\n  }" { comment (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage")" identifier (argument_list "("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage")" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""coders/cube.c"" " string_content ") , number_literal , (string_literal ""ReadCUBEImage"" " string_content ") ))) ;) })) (if_statement "if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );\n  }" if (parenthesized_expression "(exception->signature != 0xabacadab)" ( (binary_expression "exception->signature != 0xabacadab" (field_expression "exception->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );\n  }" { comment (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 )" identifier (argument_list "("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 )" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/cube.c"" " string_content ") , number_literal , (string_literal ""ReadCUBEImage"" " string_content ") ))) ;) })) (expression_statement "image = AcquireImage(image_info,exception);" (assignment_expression "image = AcquireImage(image_info,exception)" identifier = (call_expression "AcquireImage(image_info,exception)" identifier (argument_list "(image_info,exception)" ( identifier , identifier )))) ;) (expression_statement "MVar6 = OpenBlob(image_info,image,ReadBinaryBlobMode,exception);" (assignment_expression "MVar6 = OpenBlob(image_info,image,ReadBinaryBlobMode,exception)" identifier = (call_expression "OpenBlob(image_info,image,ReadBinaryBlobMode,exception)" identifier (argument_list "(image_info,image,ReadBinaryBlobMode,exception)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (MVar6 == MagickFalse) {\n    DestroyImageList(image);\n    pIVar11 = (Image *)0x0;\n    goto LAB_0033a403;\n  }" if (parenthesized_expression "(MVar6 == MagickFalse)" ( (binary_expression "MVar6 == MagickFalse" identifier == identifier) )) (compound_statement "{\n    DestroyImageList(image);\n    pIVar11 = (Image *)0x0;\n    goto LAB_0033a403;\n  }" { (expression_statement "DestroyImageList(image);" (call_expression "DestroyImageList(image)" identifier (argument_list "(image)" ( identifier ))) ;) (expression_statement "pIVar11 = (Image *)0x0;" (assignment_expression "pIVar11 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0033a403;" goto statement_identifier ;) })) (expression_statement "string = AcquireString("");" (assignment_expression "string = AcquireString("")" identifier = (call_expression "AcquireString("")" identifier (argument_list "("")" ( (string_literal """" " ") )))) ;) (expression_statement "*string = '\0';" (assignment_expression "*string = '\0'" (pointer_expression "*string" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (expression_statement "local_20a0 = (MemoryInfo *)0x0;" (assignment_expression "local_20a0 = (MemoryInfo *)0x0" identifier = (cast_expression "(MemoryInfo *)0x0" ( (type_descriptor "MemoryInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0033a25a:\n  do {\n    do {\n      pcVar9 = ReadBlobString(image,string);\n      if (pcVar9 == (char *)0x0) goto LAB_0033a378;\n      q = string;\n      GetNextToken(string,&q,0x1000,token);\n    } while ((token[0] == '#') || (token[0] == '\0'));\n    iVar7 = LocaleCompare(token,"LUT_1D_SIZE");\n    if (((iVar7 == 0) || (iVar7 = LocaleCompare(token,"LUT_3D_SIZE"), iVar7 == 0)) &&\n       (local_20a0 == (MemoryInfo *)0x0)) {\n      GetNextToken(q,&q,0x1000,value);\n      uVar15 = strtol(value,(char **)0x0,10);\n      iVar7 = LocaleCompare(token,"LUT_1D_SIZE");\n      if (iVar7 == 0) {\n        dVar19 = pow((double)uVar15,DAT_00406790);\n        if ((double)((ulong)dVar19 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar19 = (double)((ulong)((double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar19) |\n                           ~DAT_003f9c70 & (ulong)dVar19);\n        }\n        if (DAT_003f9c40 <= dVar19) {\n          uVar15 = (long)(dVar19 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar15 = (ulong)dVar19;\n        }\n      }\n      if (uVar15 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar15 * uVar15,uVar15 * 0xc);\n        if (local_20a0 != (MemoryInfo *)0x0) {\n          __s = GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar15 * 0xc * uVar15 * uVar15);\n          goto LAB_0033a25a;\n        }\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xbe,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }\n      else {\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xb7,CorruptImageError,\n                   "ImproperImageHeader","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }\n      pIVar11 = (Image *)0x0;\n      goto LAB_0033a403;\n    }\n    iVar7 = LocaleCompare(token,"TITLE ");\n    if (iVar7 == 0) {\n      GetNextToken(q,&q,0x1000,value);\n      SetImageProperty(image,"title",value,exception);\n      goto LAB_0033a25a;\n    }\n    if (uVar15 != 0) {\n      lVar10 = uVar15 * uVar15 * uVar15;\n      if (lVar10 - lVar17 == 0 || lVar10 < lVar17) break;\n      r = string;\n      dVar19 = InterpretLocaleValue(string,&r);\n      pfVar2 = (float *)((long)__s + lVar17 * 0xc);\n      *pfVar2 = (float)dVar19;\n      dVar19 = InterpretLocaleValue(r,&r);\n      pfVar2[1] = (float)dVar19;\n      dVar19 = InterpretLocaleValue(r,&r);\n      pfVar2[2] = (float)dVar19;\n      lVar17 = lVar17 + 1;\n      goto LAB_0033a25a;\n    }\n  } while (0xd < (byte)(*string - 0x2cU));" statement_identifier : (do_statement "do {\n    do {\n      pcVar9 = ReadBlobString(image,string);\n      if (pcVar9 == (char *)0x0) goto LAB_0033a378;\n      q = string;\n      GetNextToken(string,&q,0x1000,token);\n    } while ((token[0] == '#') || (token[0] == '\0'));\n    iVar7 = LocaleCompare(token,"LUT_1D_SIZE");\n    if (((iVar7 == 0) || (iVar7 = LocaleCompare(token,"LUT_3D_SIZE"), iVar7 == 0)) &&\n       (local_20a0 == (MemoryInfo *)0x0)) {\n      GetNextToken(q,&q,0x1000,value);\n      uVar15 = strtol(value,(char **)0x0,10);\n      iVar7 = LocaleCompare(token,"LUT_1D_SIZE");\n      if (iVar7 == 0) {\n        dVar19 = pow((double)uVar15,DAT_00406790);\n        if ((double)((ulong)dVar19 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar19 = (double)((ulong)((double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar19) |\n                           ~DAT_003f9c70 & (ulong)dVar19);\n        }\n        if (DAT_003f9c40 <= dVar19) {\n          uVar15 = (long)(dVar19 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar15 = (ulong)dVar19;\n        }\n      }\n      if (uVar15 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar15 * uVar15,uVar15 * 0xc);\n        if (local_20a0 != (MemoryInfo *)0x0) {\n          __s = GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar15 * 0xc * uVar15 * uVar15);\n          goto LAB_0033a25a;\n        }\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xbe,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }\n      else {\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xb7,CorruptImageError,\n                   "ImproperImageHeader","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }\n      pIVar11 = (Image *)0x0;\n      goto LAB_0033a403;\n    }\n    iVar7 = LocaleCompare(token,"TITLE ");\n    if (iVar7 == 0) {\n      GetNextToken(q,&q,0x1000,value);\n      SetImageProperty(image,"title",value,exception);\n      goto LAB_0033a25a;\n    }\n    if (uVar15 != 0) {\n      lVar10 = uVar15 * uVar15 * uVar15;\n      if (lVar10 - lVar17 == 0 || lVar10 < lVar17) break;\n      r = string;\n      dVar19 = InterpretLocaleValue(string,&r);\n      pfVar2 = (float *)((long)__s + lVar17 * 0xc);\n      *pfVar2 = (float)dVar19;\n      dVar19 = InterpretLocaleValue(r,&r);\n      pfVar2[1] = (float)dVar19;\n      dVar19 = InterpretLocaleValue(r,&r);\n      pfVar2[2] = (float)dVar19;\n      lVar17 = lVar17 + 1;\n      goto LAB_0033a25a;\n    }\n  } while (0xd < (byte)(*string - 0x2cU));" do (compound_statement "{\n    do {\n      pcVar9 = ReadBlobString(image,string);\n      if (pcVar9 == (char *)0x0) goto LAB_0033a378;\n      q = string;\n      GetNextToken(string,&q,0x1000,token);\n    } while ((token[0] == '#') || (token[0] == '\0'));\n    iVar7 = LocaleCompare(token,"LUT_1D_SIZE");\n    if (((iVar7 == 0) || (iVar7 = LocaleCompare(token,"LUT_3D_SIZE"), iVar7 == 0)) &&\n       (local_20a0 == (MemoryInfo *)0x0)) {\n      GetNextToken(q,&q,0x1000,value);\n      uVar15 = strtol(value,(char **)0x0,10);\n      iVar7 = LocaleCompare(token,"LUT_1D_SIZE");\n      if (iVar7 == 0) {\n        dVar19 = pow((double)uVar15,DAT_00406790);\n        if ((double)((ulong)dVar19 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar19 = (double)((ulong)((double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar19) |\n                           ~DAT_003f9c70 & (ulong)dVar19);\n        }\n        if (DAT_003f9c40 <= dVar19) {\n          uVar15 = (long)(dVar19 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar15 = (ulong)dVar19;\n        }\n      }\n      if (uVar15 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar15 * uVar15,uVar15 * 0xc);\n        if (local_20a0 != (MemoryInfo *)0x0) {\n          __s = GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar15 * 0xc * uVar15 * uVar15);\n          goto LAB_0033a25a;\n        }\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xbe,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }\n      else {\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xb7,CorruptImageError,\n                   "ImproperImageHeader","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }\n      pIVar11 = (Image *)0x0;\n      goto LAB_0033a403;\n    }\n    iVar7 = LocaleCompare(token,"TITLE ");\n    if (iVar7 == 0) {\n      GetNextToken(q,&q,0x1000,value);\n      SetImageProperty(image,"title",value,exception);\n      goto LAB_0033a25a;\n    }\n    if (uVar15 != 0) {\n      lVar10 = uVar15 * uVar15 * uVar15;\n      if (lVar10 - lVar17 == 0 || lVar10 < lVar17) break;\n      r = string;\n      dVar19 = InterpretLocaleValue(string,&r);\n      pfVar2 = (float *)((long)__s + lVar17 * 0xc);\n      *pfVar2 = (float)dVar19;\n      dVar19 = InterpretLocaleValue(r,&r);\n      pfVar2[1] = (float)dVar19;\n      dVar19 = InterpretLocaleValue(r,&r);\n      pfVar2[2] = (float)dVar19;\n      lVar17 = lVar17 + 1;\n      goto LAB_0033a25a;\n    }\n  }" { (do_statement "do {\n      pcVar9 = ReadBlobString(image,string);\n      if (pcVar9 == (char *)0x0) goto LAB_0033a378;\n      q = string;\n      GetNextToken(string,&q,0x1000,token);\n    } while ((token[0] == '#') || (token[0] == '\0'));" do (compound_statement "{\n      pcVar9 = ReadBlobString(image,string);\n      if (pcVar9 == (char *)0x0) goto LAB_0033a378;\n      q = string;\n      GetNextToken(string,&q,0x1000,token);\n    }" { (expression_statement "pcVar9 = ReadBlobString(image,string);" (assignment_expression "pcVar9 = ReadBlobString(image,string)" identifier = (call_expression "ReadBlobString(image,string)" identifier (argument_list "(image,string)" ( identifier , identifier )))) ;) (if_statement "if (pcVar9 == (char *)0x0) goto LAB_0033a378;" if (parenthesized_expression "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0033a378;" goto statement_identifier ;)) (expression_statement "q = string;" (assignment_expression "q = string" identifier = identifier) ;) (expression_statement "GetNextToken(string,&q,0x1000,token);" (call_expression "GetNextToken(string,&q,0x1000,token)" identifier (argument_list "(string,&q,0x1000,token)" ( identifier , (pointer_expression "&q" & identifier) , number_literal , identifier ))) ;) }) while (parenthesized_expression "((token[0] == '#') || (token[0] == '\0'))" ( (binary_expression "(token[0] == '#') || (token[0] == '\0')" (parenthesized_expression "(token[0] == '#')" ( (binary_expression "token[0] == '#'" (subscript_expression "token[0]" identifier [ number_literal ]) == (char_literal "'#'" ' character ')) )) || (parenthesized_expression "(token[0] == '\0')" ( (binary_expression "token[0] == '\0'" (subscript_expression "token[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) ;) (expression_statement "iVar7 = LocaleCompare(token,"LUT_1D_SIZE");" (assignment_expression "iVar7 = LocaleCompare(token,"LUT_1D_SIZE")" identifier = (call_expression "LocaleCompare(token,"LUT_1D_SIZE")" identifier (argument_list "(token,"LUT_1D_SIZE")" ( identifier , (string_literal ""LUT_1D_SIZE"" " string_content ") )))) ;) (if_statement "if (((iVar7 == 0) || (iVar7 = LocaleCompare(token,"LUT_3D_SIZE"), iVar7 == 0)) &&\n       (local_20a0 == (MemoryInfo *)0x0)) {\n      GetNextToken(q,&q,0x1000,value);\n      uVar15 = strtol(value,(char **)0x0,10);\n      iVar7 = LocaleCompare(token,"LUT_1D_SIZE");\n      if (iVar7 == 0) {\n        dVar19 = pow((double)uVar15,DAT_00406790);\n        if ((double)((ulong)dVar19 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar19 = (double)((ulong)((double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar19) |\n                           ~DAT_003f9c70 & (ulong)dVar19);\n        }\n        if (DAT_003f9c40 <= dVar19) {\n          uVar15 = (long)(dVar19 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar15 = (ulong)dVar19;\n        }\n      }\n      if (uVar15 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar15 * uVar15,uVar15 * 0xc);\n        if (local_20a0 != (MemoryInfo *)0x0) {\n          __s = GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar15 * 0xc * uVar15 * uVar15);\n          goto LAB_0033a25a;\n        }\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xbe,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }\n      else {\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xb7,CorruptImageError,\n                   "ImproperImageHeader","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }\n      pIVar11 = (Image *)0x0;\n      goto LAB_0033a403;\n    }" if (parenthesized_expression "(((iVar7 == 0) || (iVar7 = LocaleCompare(token,"LUT_3D_SIZE"), iVar7 == 0)) &&\n       (local_20a0 == (MemoryInfo *)0x0))" ( (binary_expression "((iVar7 == 0) || (iVar7 = LocaleCompare(token,"LUT_3D_SIZE"), iVar7 == 0)) &&\n       (local_20a0 == (MemoryInfo *)0x0)" (parenthesized_expression "((iVar7 == 0) || (iVar7 = LocaleCompare(token,"LUT_3D_SIZE"), iVar7 == 0))" ( (binary_expression "(iVar7 == 0) || (iVar7 = LocaleCompare(token,"LUT_3D_SIZE"), iVar7 == 0)" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar7 = LocaleCompare(token,"LUT_3D_SIZE"), iVar7 == 0)" ( (comma_expression "iVar7 = LocaleCompare(token,"LUT_3D_SIZE"), iVar7 == 0" (assignment_expression "iVar7 = LocaleCompare(token,"LUT_3D_SIZE")" identifier = (call_expression "LocaleCompare(token,"LUT_3D_SIZE")" identifier (argument_list "(token,"LUT_3D_SIZE")" ( identifier , (string_literal ""LUT_3D_SIZE"" " string_content ") )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(local_20a0 == (MemoryInfo *)0x0)" ( (binary_expression "local_20a0 == (MemoryInfo *)0x0" identifier == (cast_expression "(MemoryInfo *)0x0" ( (type_descriptor "MemoryInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      GetNextToken(q,&q,0x1000,value);\n      uVar15 = strtol(value,(char **)0x0,10);\n      iVar7 = LocaleCompare(token,"LUT_1D_SIZE");\n      if (iVar7 == 0) {\n        dVar19 = pow((double)uVar15,DAT_00406790);\n        if ((double)((ulong)dVar19 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar19 = (double)((ulong)((double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar19) |\n                           ~DAT_003f9c70 & (ulong)dVar19);\n        }\n        if (DAT_003f9c40 <= dVar19) {\n          uVar15 = (long)(dVar19 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar15 = (ulong)dVar19;\n        }\n      }\n      if (uVar15 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar15 * uVar15,uVar15 * 0xc);\n        if (local_20a0 != (MemoryInfo *)0x0) {\n          __s = GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar15 * 0xc * uVar15 * uVar15);\n          goto LAB_0033a25a;\n        }\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xbe,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }\n      else {\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xb7,CorruptImageError,\n                   "ImproperImageHeader","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }\n      pIVar11 = (Image *)0x0;\n      goto LAB_0033a403;\n    }" { (expression_statement "GetNextToken(q,&q,0x1000,value);" (call_expression "GetNextToken(q,&q,0x1000,value)" identifier (argument_list "(q,&q,0x1000,value)" ( identifier , (pointer_expression "&q" & identifier) , number_literal , identifier ))) ;) (expression_statement "uVar15 = strtol(value,(char **)0x0,10);" (assignment_expression "uVar15 = strtol(value,(char **)0x0,10)" identifier = (call_expression "strtol(value,(char **)0x0,10)" identifier (argument_list "(value,(char **)0x0,10)" ( identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (expression_statement "iVar7 = LocaleCompare(token,"LUT_1D_SIZE");" (assignment_expression "iVar7 = LocaleCompare(token,"LUT_1D_SIZE")" identifier = (call_expression "LocaleCompare(token,"LUT_1D_SIZE")" identifier (argument_list "(token,"LUT_1D_SIZE")" ( identifier , (string_literal ""LUT_1D_SIZE"" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) {\n        dVar19 = pow((double)uVar15,DAT_00406790);\n        if ((double)((ulong)dVar19 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar19 = (double)((ulong)((double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar19) |\n                           ~DAT_003f9c70 & (ulong)dVar19);\n        }\n        if (DAT_003f9c40 <= dVar19) {\n          uVar15 = (long)(dVar19 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar15 = (ulong)dVar19;\n        }\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        dVar19 = pow((double)uVar15,DAT_00406790);\n        if ((double)((ulong)dVar19 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar19 = (double)((ulong)((double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar19) |\n                           ~DAT_003f9c70 & (ulong)dVar19);\n        }\n        if (DAT_003f9c40 <= dVar19) {\n          uVar15 = (long)(dVar19 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar15 = (ulong)dVar19;\n        }\n      }" { (expression_statement "dVar19 = pow((double)uVar15,DAT_00406790);" (assignment_expression "dVar19 = pow((double)uVar15,DAT_00406790)" identifier = (call_expression "pow((double)uVar15,DAT_00406790)" identifier (argument_list "((double)uVar15,DAT_00406790)" ( (cast_expression "(double)uVar15" ( (type_descriptor "double" primitive_type) ) identifier) , identifier )))) ;) (if_statement "if ((double)((ulong)dVar19 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar19 = (double)((ulong)((double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar19) |\n                           ~DAT_003f9c70 & (ulong)dVar19);\n        }" if (parenthesized_expression "((double)((ulong)dVar19 & DAT_003f9c70) < DAT_003f9c30)" ( (binary_expression "(double)((ulong)dVar19 & DAT_003f9c70) < DAT_003f9c30" (cast_expression "(double)((ulong)dVar19 & DAT_003f9c70)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((ulong)dVar19 & DAT_003f9c70)" ( (binary_expression "(ulong)dVar19 & DAT_003f9c70" (cast_expression "(ulong)dVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) & identifier) ))) < identifier) )) (compound_statement "{\n          dVar19 = (double)((ulong)((double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar19) |\n                           ~DAT_003f9c70 & (ulong)dVar19);\n        }" { (expression_statement "dVar19 = (double)((ulong)((double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar19) |\n                           ~DAT_003f9c70 & (ulong)dVar19);" (assignment_expression "dVar19 = (double)((ulong)((double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar19) |\n                           ~DAT_003f9c70 & (ulong)dVar19)" identifier = (cast_expression "(double)((ulong)((double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar19) |\n                           ~DAT_003f9c70 & (ulong)dVar19)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((ulong)((double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar19) |\n                           ~DAT_003f9c70 & (ulong)dVar19)" ( (binary_expression "(ulong)((double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar19) |\n                           ~DAT_003f9c70 & (ulong)dVar19" (call_expression "(ulong)((double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar19)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar19)" ( (binary_expression "(double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar19" (cast_expression "(double)(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608)" ( (binary_expression "-(ulong)((double)(long)dVar19 < dVar19) &\n                                            (ulong)DAT_003f9608" (unary_expression "-(ulong)((double)(long)dVar19 < dVar19)" - (call_expression "(ulong)((double)(long)dVar19 < dVar19)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((double)(long)dVar19 < dVar19)" ( (binary_expression "(double)(long)dVar19 < dVar19" (cast_expression "(double)(long)dVar19" ( (type_descriptor "double" primitive_type) ) (cast_expression "(long)dVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < identifier) )))) & (cast_expression "(ulong)DAT_003f9608" ( (type_descriptor "ulong" type_identifier) ) identifier)) ))) + (cast_expression "(double)(long)dVar19" ( (type_descriptor "double" primitive_type) ) (cast_expression "(long)dVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ))) | (binary_expression "~DAT_003f9c70 & (ulong)dVar19" (unary_expression "~DAT_003f9c70" ~ identifier) & (cast_expression "(ulong)dVar19" ( (type_descriptor "ulong" type_identifier) ) identifier))) )))) ;) })) (if_statement "if (DAT_003f9c40 <= dVar19) {\n          uVar15 = (long)(dVar19 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar15 = (ulong)dVar19;\n        }" if (parenthesized_expression "(DAT_003f9c40 <= dVar19)" ( (binary_expression "DAT_003f9c40 <= dVar19" identifier <= identifier) )) (compound_statement "{\n          uVar15 = (long)(dVar19 - DAT_003f9c40) ^ 0x8000000000000000;\n        }" { (expression_statement "uVar15 = (long)(dVar19 - DAT_003f9c40) ^ 0x8000000000000000;" (assignment_expression "uVar15 = (long)(dVar19 - DAT_003f9c40) ^ 0x8000000000000000" identifier = (binary_expression "(long)(dVar19 - DAT_003f9c40) ^ 0x8000000000000000" (cast_expression "(long)(dVar19 - DAT_003f9c40)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(dVar19 - DAT_003f9c40)" ( (binary_expression "dVar19 - DAT_003f9c40" identifier - identifier) ))) ^ number_literal)) ;) }) (else_clause "else {\n          uVar15 = (ulong)dVar19;\n        }" else (compound_statement "{\n          uVar15 = (ulong)dVar19;\n        }" { (expression_statement "uVar15 = (ulong)dVar19;" (assignment_expression "uVar15 = (ulong)dVar19" identifier = (cast_expression "(ulong)dVar19" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }))) })) (if_statement "if (uVar15 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar15 * uVar15,uVar15 * 0xc);\n        if (local_20a0 != (MemoryInfo *)0x0) {\n          __s = GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar15 * 0xc * uVar15 * uVar15);\n          goto LAB_0033a25a;\n        }\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xbe,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }\n      else {\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xb7,CorruptImageError,\n                   "ImproperImageHeader","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }" if (parenthesized_expression "(uVar15 - 2 < 0xff)" ( (binary_expression "uVar15 - 2 < 0xff" (binary_expression "uVar15 - 2" identifier - number_literal) < number_literal) )) (compound_statement "{\n        local_20a0 = AcquireVirtualMemory(uVar15 * uVar15,uVar15 * 0xc);\n        if (local_20a0 != (MemoryInfo *)0x0) {\n          __s = GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar15 * 0xc * uVar15 * uVar15);\n          goto LAB_0033a25a;\n        }\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xbe,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }" { (expression_statement "local_20a0 = AcquireVirtualMemory(uVar15 * uVar15,uVar15 * 0xc);" (assignment_expression "local_20a0 = AcquireVirtualMemory(uVar15 * uVar15,uVar15 * 0xc)" identifier = (call_expression "AcquireVirtualMemory(uVar15 * uVar15,uVar15 * 0xc)" identifier (argument_list "(uVar15 * uVar15,uVar15 * 0xc)" ( (binary_expression "uVar15 * uVar15" identifier * identifier) , (binary_expression "uVar15 * 0xc" identifier * number_literal) )))) ;) (if_statement "if (local_20a0 != (MemoryInfo *)0x0) {\n          __s = GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar15 * 0xc * uVar15 * uVar15);\n          goto LAB_0033a25a;\n        }" if (parenthesized_expression "(local_20a0 != (MemoryInfo *)0x0)" ( (binary_expression "local_20a0 != (MemoryInfo *)0x0" identifier != (cast_expression "(MemoryInfo *)0x0" ( (type_descriptor "MemoryInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          __s = GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar15 * 0xc * uVar15 * uVar15);\n          goto LAB_0033a25a;\n        }" { (expression_statement "__s = GetVirtualMemoryBlob(local_20a0);" (assignment_expression "__s = GetVirtualMemoryBlob(local_20a0)" identifier = (call_expression "GetVirtualMemoryBlob(local_20a0)" identifier (argument_list "(local_20a0)" ( identifier )))) ;) (expression_statement "memset(__s,0,uVar15 * 0xc * uVar15 * uVar15);" (call_expression "memset(__s,0,uVar15 * 0xc * uVar15 * uVar15)" identifier (argument_list "(__s,0,uVar15 * 0xc * uVar15 * uVar15)" ( identifier , number_literal , (binary_expression "uVar15 * 0xc * uVar15 * uVar15" (binary_expression "uVar15 * 0xc * uVar15" (binary_expression "uVar15 * 0xc" identifier * number_literal) * identifier) * identifier) ))) ;) (goto_statement "goto LAB_0033a25a;" goto statement_identifier ;) })) (expression_statement "DestroyString(string);" (call_expression "DestroyString(string)" identifier (argument_list "(string)" ( identifier ))) ;) (expression_statement "ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xbe,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",image_info->filename);" (call_expression "ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xbe,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",image_info->filename)" identifier (argument_list "(exception,"coders/cube.c","ReadCUBEImage",0xbe,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",image_info->filename)" ( identifier , (string_literal ""coders/cube.c"" " string_content ") , (string_literal ""ReadCUBEImage"" " string_content ") , number_literal , identifier , (string_literal ""MemoryAllocationFailed"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (field_expression "image_info->filename" identifier -> field_identifier) ))) ;) (if_statement "if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }" if (parenthesized_expression "(image != (Image *)0x0)" ( (binary_expression "image != (Image *)0x0" identifier != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          CloseBlob(image);\n          DestroyImageList(image);\n        }" { (expression_statement "CloseBlob(image);" (call_expression "CloseBlob(image)" identifier (argument_list "(image)" ( identifier ))) ;) (expression_statement "DestroyImageList(image);" (call_expression "DestroyImageList(image)" identifier (argument_list "(image)" ( identifier ))) ;) })) }) (else_clause "else {\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xb7,CorruptImageError,\n                   "ImproperImageHeader","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }" else (compound_statement "{\n        DestroyString(string);\n        ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xb7,CorruptImageError,\n                   "ImproperImageHeader","`%s\'",image_info->filename);\n        if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }\n      }" { (expression_statement "DestroyString(string);" (call_expression "DestroyString(string)" identifier (argument_list "(string)" ( identifier ))) ;) (expression_statement "ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xb7,CorruptImageError,\n                   "ImproperImageHeader","`%s\'",image_info->filename);" (call_expression "ThrowMagickException\n                  (exception,"coders/cube.c","ReadCUBEImage",0xb7,CorruptImageError,\n                   "ImproperImageHeader","`%s\'",image_info->filename)" identifier (argument_list "(exception,"coders/cube.c","ReadCUBEImage",0xb7,CorruptImageError,\n                   "ImproperImageHeader","`%s\'",image_info->filename)" ( identifier , (string_literal ""coders/cube.c"" " string_content ") , (string_literal ""ReadCUBEImage"" " string_content ") , number_literal , identifier , (string_literal ""ImproperImageHeader"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (field_expression "image_info->filename" identifier -> field_identifier) ))) ;) (if_statement "if (image != (Image *)0x0) {\n          CloseBlob(image);\n          DestroyImageList(image);\n        }" if (parenthesized_expression "(image != (Image *)0x0)" ( (binary_expression "image != (Image *)0x0" identifier != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          CloseBlob(image);\n          DestroyImageList(image);\n        }" { (expression_statement "CloseBlob(image);" (call_expression "CloseBlob(image)" identifier (argument_list "(image)" ( identifier ))) ;) (expression_statement "DestroyImageList(image);" (call_expression "DestroyImageList(image)" identifier (argument_list "(image)" ( identifier ))) ;) })) }))) (expression_statement "pIVar11 = (Image *)0x0;" (assignment_expression "pIVar11 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0033a403;" goto statement_identifier ;) })) (expression_statement "iVar7 = LocaleCompare(token,"TITLE ");" (assignment_expression "iVar7 = LocaleCompare(token,"TITLE ")" identifier = (call_expression "LocaleCompare(token,"TITLE ")" identifier (argument_list "(token,"TITLE ")" ( identifier , (string_literal ""TITLE "" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) {\n      GetNextToken(q,&q,0x1000,value);\n      SetImageProperty(image,"title",value,exception);\n      goto LAB_0033a25a;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      GetNextToken(q,&q,0x1000,value);\n      SetImageProperty(image,"title",value,exception);\n      goto LAB_0033a25a;\n    }" { (expression_statement "GetNextToken(q,&q,0x1000,value);" (call_expression "GetNextToken(q,&q,0x1000,value)" identifier (argument_list "(q,&q,0x1000,value)" ( identifier , (pointer_expression "&q" & identifier) , number_literal , identifier ))) ;) (expression_statement "SetImageProperty(image,"title",value,exception);" (call_expression "SetImageProperty(image,"title",value,exception)" identifier (argument_list "(image,"title",value,exception)" ( identifier , (string_literal ""title"" " string_content ") , identifier , identifier ))) ;) (goto_statement "goto LAB_0033a25a;" goto statement_identifier ;) })) (if_statement "if (uVar15 != 0) {\n      lVar10 = uVar15 * uVar15 * uVar15;\n      if (lVar10 - lVar17 == 0 || lVar10 < lVar17) break;\n      r = string;\n      dVar19 = InterpretLocaleValue(string,&r);\n      pfVar2 = (float *)((long)__s + lVar17 * 0xc);\n      *pfVar2 = (float)dVar19;\n      dVar19 = InterpretLocaleValue(r,&r);\n      pfVar2[1] = (float)dVar19;\n      dVar19 = InterpretLocaleValue(r,&r);\n      pfVar2[2] = (float)dVar19;\n      lVar17 = lVar17 + 1;\n      goto LAB_0033a25a;\n    }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n      lVar10 = uVar15 * uVar15 * uVar15;\n      if (lVar10 - lVar17 == 0 || lVar10 < lVar17) break;\n      r = string;\n      dVar19 = InterpretLocaleValue(string,&r);\n      pfVar2 = (float *)((long)__s + lVar17 * 0xc);\n      *pfVar2 = (float)dVar19;\n      dVar19 = InterpretLocaleValue(r,&r);\n      pfVar2[1] = (float)dVar19;\n      dVar19 = InterpretLocaleValue(r,&r);\n      pfVar2[2] = (float)dVar19;\n      lVar17 = lVar17 + 1;\n      goto LAB_0033a25a;\n    }" { (expression_statement "lVar10 = uVar15 * uVar15 * uVar15;" (assignment_expression "lVar10 = uVar15 * uVar15 * uVar15" identifier = (binary_expression "uVar15 * uVar15 * uVar15" (binary_expression "uVar15 * uVar15" identifier * identifier) * identifier)) ;) (if_statement "if (lVar10 - lVar17 == 0 || lVar10 < lVar17) break;" if (parenthesized_expression "(lVar10 - lVar17 == 0 || lVar10 < lVar17)" ( (binary_expression "lVar10 - lVar17 == 0 || lVar10 < lVar17" (binary_expression "lVar10 - lVar17 == 0" (binary_expression "lVar10 - lVar17" identifier - identifier) == number_literal) || (binary_expression "lVar10 < lVar17" identifier < identifier)) )) (break_statement "break;" break ;)) (expression_statement "r = string;" (assignment_expression "r = string" identifier = identifier) ;) (expression_statement "dVar19 = InterpretLocaleValue(string,&r);" (assignment_expression "dVar19 = InterpretLocaleValue(string,&r)" identifier = (call_expression "InterpretLocaleValue(string,&r)" identifier (argument_list "(string,&r)" ( identifier , (pointer_expression "&r" & identifier) )))) ;) (expression_statement "pfVar2 = (float *)((long)__s + lVar17 * 0xc);" (assignment_expression "pfVar2 = (float *)((long)__s + lVar17 * 0xc)" identifier = (cast_expression "(float *)((long)__s + lVar17 * 0xc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + lVar17 * 0xc)" ( (binary_expression "(long)__s + lVar17 * 0xc" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "lVar17 * 0xc" identifier * number_literal)) )))) ;) (expression_statement "*pfVar2 = (float)dVar19;" (assignment_expression "*pfVar2 = (float)dVar19" (pointer_expression "*pfVar2" * identifier) = (cast_expression "(float)dVar19" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "dVar19 = InterpretLocaleValue(r,&r);" (assignment_expression "dVar19 = InterpretLocaleValue(r,&r)" identifier = (call_expression "InterpretLocaleValue(r,&r)" identifier (argument_list "(r,&r)" ( identifier , (pointer_expression "&r" & identifier) )))) ;) (expression_statement "pfVar2[1] = (float)dVar19;" (assignment_expression "pfVar2[1] = (float)dVar19" (subscript_expression "pfVar2[1]" identifier [ number_literal ]) = (cast_expression "(float)dVar19" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "dVar19 = InterpretLocaleValue(r,&r);" (assignment_expression "dVar19 = InterpretLocaleValue(r,&r)" identifier = (call_expression "InterpretLocaleValue(r,&r)" identifier (argument_list "(r,&r)" ( identifier , (pointer_expression "&r" & identifier) )))) ;) (expression_statement "pfVar2[2] = (float)dVar19;" (assignment_expression "pfVar2[2] = (float)dVar19" (subscript_expression "pfVar2[2]" identifier [ number_literal ]) = (cast_expression "(float)dVar19" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "lVar17 = lVar17 + 1;" (assignment_expression "lVar17 = lVar17 + 1" identifier = (binary_expression "lVar17 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0033a25a;" goto statement_identifier ;) })) }) while (parenthesized_expression "(0xd < (byte)(*string - 0x2cU))" ( (binary_expression "0xd < (byte)(*string - 0x2cU)" number_literal < (call_expression "(byte)(*string - 0x2cU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*string - 0x2cU)" ( (binary_expression "*string - 0x2cU" (pointer_expression "*string" * identifier) - number_literal) )))) )) ;)) (labeled_statement "LAB_0033a378:\n  DestroyString(string);" statement_identifier : (expression_statement "DestroyString(string);" (call_expression "DestroyString(string)" identifier (argument_list "(string)" ( identifier ))) ;)) (if_statement "if (uVar15 == 0) {\n    if (local_20a0 != (MemoryInfo *)0x0) {\n      RelinquishVirtualMemory(local_20a0);\n    }\n    ThrowMagickException\n              (exception,"coders/cube.c","ReadCUBEImage",0xe0,CorruptImageError,\n               "ImproperImageHeader","`%s\'",image_info->filename);\n    pIVar11 = image;\n    if (image != (Image *)0x0) {\n      CloseBlob(image);\n      DestroyImageList(image);\n      pIVar11 = (Image *)0x0;\n    }\n    goto LAB_0033a403;\n  }" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (compound_statement "{\n    if (local_20a0 != (MemoryInfo *)0x0) {\n      RelinquishVirtualMemory(local_20a0);\n    }\n    ThrowMagickException\n              (exception,"coders/cube.c","ReadCUBEImage",0xe0,CorruptImageError,\n               "ImproperImageHeader","`%s\'",image_info->filename);\n    pIVar11 = image;\n    if (image != (Image *)0x0) {\n      CloseBlob(image);\n      DestroyImageList(image);\n      pIVar11 = (Image *)0x0;\n    }\n    goto LAB_0033a403;\n  }" { (if_statement "if (local_20a0 != (MemoryInfo *)0x0) {\n      RelinquishVirtualMemory(local_20a0);\n    }" if (parenthesized_expression "(local_20a0 != (MemoryInfo *)0x0)" ( (binary_expression "local_20a0 != (MemoryInfo *)0x0" identifier != (cast_expression "(MemoryInfo *)0x0" ( (type_descriptor "MemoryInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      RelinquishVirtualMemory(local_20a0);\n    }" { (expression_statement "RelinquishVirtualMemory(local_20a0);" (call_expression "RelinquishVirtualMemory(local_20a0)" identifier (argument_list "(local_20a0)" ( identifier ))) ;) })) (expression_statement "ThrowMagickException\n              (exception,"coders/cube.c","ReadCUBEImage",0xe0,CorruptImageError,\n               "ImproperImageHeader","`%s\'",image_info->filename);" (call_expression "ThrowMagickException\n              (exception,"coders/cube.c","ReadCUBEImage",0xe0,CorruptImageError,\n               "ImproperImageHeader","`%s\'",image_info->filename)" identifier (argument_list "(exception,"coders/cube.c","ReadCUBEImage",0xe0,CorruptImageError,\n               "ImproperImageHeader","`%s\'",image_info->filename)" ( identifier , (string_literal ""coders/cube.c"" " string_content ") , (string_literal ""ReadCUBEImage"" " string_content ") , number_literal , identifier , (string_literal ""ImproperImageHeader"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (field_expression "image_info->filename" identifier -> field_identifier) ))) ;) (expression_statement "pIVar11 = image;" (assignment_expression "pIVar11 = image" identifier = identifier) ;) (if_statement "if (image != (Image *)0x0) {\n      CloseBlob(image);\n      DestroyImageList(image);\n      pIVar11 = (Image *)0x0;\n    }" if (parenthesized_expression "(image != (Image *)0x0)" ( (binary_expression "image != (Image *)0x0" identifier != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      CloseBlob(image);\n      DestroyImageList(image);\n      pIVar11 = (Image *)0x0;\n    }" { (expression_statement "CloseBlob(image);" (call_expression "CloseBlob(image)" identifier (argument_list "(image)" ( identifier ))) ;) (expression_statement "DestroyImageList(image);" (call_expression "DestroyImageList(image)" identifier (argument_list "(image)" ( identifier ))) ;) (expression_statement "pIVar11 = (Image *)0x0;" (assignment_expression "pIVar11 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (goto_statement "goto LAB_0033a403;" goto statement_identifier ;) })) (expression_statement "local_2080 = image_info->scene;" (assignment_expression "local_2080 = image_info->scene" identifier = (field_expression "image_info->scene" identifier -> field_identifier)) ;) (if_statement "if (local_2080 - 2 < 0xff) {\n    columns = local_2080 * local_2080;\n    sVar12 = local_2080 * columns;\n    image->columns = sVar12;\n    image->rows = sVar12;\n    MVar6 = SetImageExtent(image,sVar12,sVar12,exception);\n    if (MVar6 == MagickFalse) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      pIVar11 = DestroyImageList(image);\n      goto LAB_0033a403;\n    }\n    if (0 < (long)columns) goto LAB_0033ab1a;\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(image);\n  }\n  else {\n    image->columns = 0x200;\n    image->rows = 0x200;\n    MVar6 = SetImageExtent(image,0x200,0x200,exception);\n    if (MVar6 == MagickFalse) goto LAB_0033a49e;\n    columns = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (MVar6 != MagickFalse) {\n        uVar16 = 0;\n        do {\n          MVar8 = MVar6;\n          if (MVar6 != MagickFalse) {\n            pQVar13 = QueueAuthenticPixels\n                                (image,(uVar16 % local_2080) * columns,\n                                 (uVar16 / local_2080) % columns + local_2070,columns,1,exception);\n            uVar5 = DAT_0043b420;\n            if (pQVar13 == (Quantum *)0x0) {\n              MVar8 = MagickFalse;\n            }\n            else {\n              dVar35 = (double)columns - DAT_003f9608;\n              dVar19 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar19 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              sVar12 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar19 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar19 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar20 = (double)uVar15 - DAT_003f9608;\n                dVar22 = (double)(long)sVar12 * dVar22 * dVar20;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar15 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar14 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar16 * dVar22 * dVar20;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar14) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;\n                fVar21 = (float)dVar20;\n                fVar30 = fVar21;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }\n                if (DAT_00420e38 <= fVar30) {\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar30;\n                }\n                fVar18 = fVar30;\n                if (uVar1 != uVar14) {\n                  fVar18 = fVar30 + DAT_00404988;\n                }\n                fVar31 = (float)uVar15;\n                fVar28 = fVar30 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                pQVar13 = pQVar13 + image->number_channels;\n                sVar12 = sVar12 + 1;\n              } while (sVar12 != columns);\n              MVar8 = SyncAuthenticPixels(image,exception);\n              if (MVar8 != MagickFalse) {\n                MVar8 = MVar6;\n              }\n            }\n          }\n          MVar6 = MVar8;\n          uVar16 = uVar16 + 1;\n        } while (uVar16 != columns);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != columns);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(image);\n    if (MVar6 == MagickFalse) {\n      pIVar11 = DestroyImageList(image);\n      goto LAB_0033a403;\n    }\n  }" if (parenthesized_expression "(local_2080 - 2 < 0xff)" ( (binary_expression "local_2080 - 2 < 0xff" (binary_expression "local_2080 - 2" identifier - number_literal) < number_literal) )) (compound_statement "{\n    columns = local_2080 * local_2080;\n    sVar12 = local_2080 * columns;\n    image->columns = sVar12;\n    image->rows = sVar12;\n    MVar6 = SetImageExtent(image,sVar12,sVar12,exception);\n    if (MVar6 == MagickFalse) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      pIVar11 = DestroyImageList(image);\n      goto LAB_0033a403;\n    }\n    if (0 < (long)columns) goto LAB_0033ab1a;\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(image);\n  }" { (expression_statement "columns = local_2080 * local_2080;" (assignment_expression "columns = local_2080 * local_2080" identifier = (binary_expression "local_2080 * local_2080" identifier * identifier)) ;) (expression_statement "sVar12 = local_2080 * columns;" (assignment_expression "sVar12 = local_2080 * columns" identifier = (binary_expression "local_2080 * columns" identifier * identifier)) ;) (expression_statement "image->columns = sVar12;" (assignment_expression "image->columns = sVar12" (field_expression "image->columns" identifier -> field_identifier) = identifier) ;) (expression_statement "image->rows = sVar12;" (assignment_expression "image->rows = sVar12" (field_expression "image->rows" identifier -> field_identifier) = identifier) ;) (expression_statement "MVar6 = SetImageExtent(image,sVar12,sVar12,exception);" (assignment_expression "MVar6 = SetImageExtent(image,sVar12,sVar12,exception)" identifier = (call_expression "SetImageExtent(image,sVar12,sVar12,exception)" identifier (argument_list "(image,sVar12,sVar12,exception)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (MVar6 == MagickFalse) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      pIVar11 = DestroyImageList(image);\n      goto LAB_0033a403;\n    }" if (parenthesized_expression "(MVar6 == MagickFalse)" ( (binary_expression "MVar6 == MagickFalse" identifier == identifier) )) (compound_statement "{\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      pIVar11 = DestroyImageList(image);\n      goto LAB_0033a403;\n    }" { (labeled_statement "LAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);" statement_identifier : (expression_statement "RelinquishVirtualMemory(local_20a0);" (call_expression "RelinquishVirtualMemory(local_20a0)" identifier (argument_list "(local_20a0)" ( identifier ))) ;)) (expression_statement "pIVar11 = DestroyImageList(image);" (assignment_expression "pIVar11 = DestroyImageList(image)" identifier = (call_expression "DestroyImageList(image)" identifier (argument_list "(image)" ( identifier )))) ;) (goto_statement "goto LAB_0033a403;" goto statement_identifier ;) })) (if_statement "if (0 < (long)columns) goto LAB_0033ab1a;" if (parenthesized_expression "(0 < (long)columns)" ( (binary_expression "0 < (long)columns" number_literal < (cast_expression "(long)columns" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_0033ab1a;" goto statement_identifier ;)) (expression_statement "RelinquishVirtualMemory(local_20a0);" (call_expression "RelinquishVirtualMemory(local_20a0)" identifier (argument_list "(local_20a0)" ( identifier ))) ;) (expression_statement "CloseBlob(image);" (call_expression "CloseBlob(image)" identifier (argument_list "(image)" ( identifier ))) ;) }) (else_clause "else {\n    image->columns = 0x200;\n    image->rows = 0x200;\n    MVar6 = SetImageExtent(image,0x200,0x200,exception);\n    if (MVar6 == MagickFalse) goto LAB_0033a49e;\n    columns = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (MVar6 != MagickFalse) {\n        uVar16 = 0;\n        do {\n          MVar8 = MVar6;\n          if (MVar6 != MagickFalse) {\n            pQVar13 = QueueAuthenticPixels\n                                (image,(uVar16 % local_2080) * columns,\n                                 (uVar16 / local_2080) % columns + local_2070,columns,1,exception);\n            uVar5 = DAT_0043b420;\n            if (pQVar13 == (Quantum *)0x0) {\n              MVar8 = MagickFalse;\n            }\n            else {\n              dVar35 = (double)columns - DAT_003f9608;\n              dVar19 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar19 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              sVar12 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar19 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar19 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar20 = (double)uVar15 - DAT_003f9608;\n                dVar22 = (double)(long)sVar12 * dVar22 * dVar20;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar15 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar14 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar16 * dVar22 * dVar20;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar14) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;\n                fVar21 = (float)dVar20;\n                fVar30 = fVar21;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }\n                if (DAT_00420e38 <= fVar30) {\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar30;\n                }\n                fVar18 = fVar30;\n                if (uVar1 != uVar14) {\n                  fVar18 = fVar30 + DAT_00404988;\n                }\n                fVar31 = (float)uVar15;\n                fVar28 = fVar30 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                pQVar13 = pQVar13 + image->number_channels;\n                sVar12 = sVar12 + 1;\n              } while (sVar12 != columns);\n              MVar8 = SyncAuthenticPixels(image,exception);\n              if (MVar8 != MagickFalse) {\n                MVar8 = MVar6;\n              }\n            }\n          }\n          MVar6 = MVar8;\n          uVar16 = uVar16 + 1;\n        } while (uVar16 != columns);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != columns);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(image);\n    if (MVar6 == MagickFalse) {\n      pIVar11 = DestroyImageList(image);\n      goto LAB_0033a403;\n    }\n  }" else (compound_statement "{\n    image->columns = 0x200;\n    image->rows = 0x200;\n    MVar6 = SetImageExtent(image,0x200,0x200,exception);\n    if (MVar6 == MagickFalse) goto LAB_0033a49e;\n    columns = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (MVar6 != MagickFalse) {\n        uVar16 = 0;\n        do {\n          MVar8 = MVar6;\n          if (MVar6 != MagickFalse) {\n            pQVar13 = QueueAuthenticPixels\n                                (image,(uVar16 % local_2080) * columns,\n                                 (uVar16 / local_2080) % columns + local_2070,columns,1,exception);\n            uVar5 = DAT_0043b420;\n            if (pQVar13 == (Quantum *)0x0) {\n              MVar8 = MagickFalse;\n            }\n            else {\n              dVar35 = (double)columns - DAT_003f9608;\n              dVar19 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar19 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              sVar12 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar19 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar19 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar20 = (double)uVar15 - DAT_003f9608;\n                dVar22 = (double)(long)sVar12 * dVar22 * dVar20;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar15 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar14 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar16 * dVar22 * dVar20;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar14) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;\n                fVar21 = (float)dVar20;\n                fVar30 = fVar21;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }\n                if (DAT_00420e38 <= fVar30) {\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar30;\n                }\n                fVar18 = fVar30;\n                if (uVar1 != uVar14) {\n                  fVar18 = fVar30 + DAT_00404988;\n                }\n                fVar31 = (float)uVar15;\n                fVar28 = fVar30 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                pQVar13 = pQVar13 + image->number_channels;\n                sVar12 = sVar12 + 1;\n              } while (sVar12 != columns);\n              MVar8 = SyncAuthenticPixels(image,exception);\n              if (MVar8 != MagickFalse) {\n                MVar8 = MVar6;\n              }\n            }\n          }\n          MVar6 = MVar8;\n          uVar16 = uVar16 + 1;\n        } while (uVar16 != columns);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != columns);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(image);\n    if (MVar6 == MagickFalse) {\n      pIVar11 = DestroyImageList(image);\n      goto LAB_0033a403;\n    }\n  }" { (expression_statement "image->columns = 0x200;" (assignment_expression "image->columns = 0x200" (field_expression "image->columns" identifier -> field_identifier) = number_literal) ;) (expression_statement "image->rows = 0x200;" (assignment_expression "image->rows = 0x200" (field_expression "image->rows" identifier -> field_identifier) = number_literal) ;) (expression_statement "MVar6 = SetImageExtent(image,0x200,0x200,exception);" (assignment_expression "MVar6 = SetImageExtent(image,0x200,0x200,exception)" identifier = (call_expression "SetImageExtent(image,0x200,0x200,exception)" identifier (argument_list "(image,0x200,0x200,exception)" ( identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (MVar6 == MagickFalse) goto LAB_0033a49e;" if (parenthesized_expression "(MVar6 == MagickFalse)" ( (binary_expression "MVar6 == MagickFalse" identifier == identifier) )) (goto_statement "goto LAB_0033a49e;" goto statement_identifier ;)) (expression_statement "columns = 0x40;" (assignment_expression "columns = 0x40" identifier = number_literal) ;) (expression_statement "local_2080 = 8;" (assignment_expression "local_2080 = 8" identifier = number_literal) ;) (labeled_statement "LAB_0033ab1a:\n    local_2070 = 0;" statement_identifier : (expression_statement "local_2070 = 0;" (assignment_expression "local_2070 = 0" identifier = number_literal) ;)) (expression_statement "local_20a8 = 0;" (assignment_expression "local_20a8 = 0" identifier = number_literal) ;) (do_statement "do {\n      if (MVar6 != MagickFalse) {\n        uVar16 = 0;\n        do {\n          MVar8 = MVar6;\n          if (MVar6 != MagickFalse) {\n            pQVar13 = QueueAuthenticPixels\n                                (image,(uVar16 % local_2080) * columns,\n                                 (uVar16 / local_2080) % columns + local_2070,columns,1,exception);\n            uVar5 = DAT_0043b420;\n            if (pQVar13 == (Quantum *)0x0) {\n              MVar8 = MagickFalse;\n            }\n            else {\n              dVar35 = (double)columns - DAT_003f9608;\n              dVar19 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar19 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              sVar12 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar19 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar19 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar20 = (double)uVar15 - DAT_003f9608;\n                dVar22 = (double)(long)sVar12 * dVar22 * dVar20;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar15 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar14 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar16 * dVar22 * dVar20;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar14) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;\n                fVar21 = (float)dVar20;\n                fVar30 = fVar21;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }\n                if (DAT_00420e38 <= fVar30) {\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar30;\n                }\n                fVar18 = fVar30;\n                if (uVar1 != uVar14) {\n                  fVar18 = fVar30 + DAT_00404988;\n                }\n                fVar31 = (float)uVar15;\n                fVar28 = fVar30 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                pQVar13 = pQVar13 + image->number_channels;\n                sVar12 = sVar12 + 1;\n              } while (sVar12 != columns);\n              MVar8 = SyncAuthenticPixels(image,exception);\n              if (MVar8 != MagickFalse) {\n                MVar8 = MVar6;\n              }\n            }\n          }\n          MVar6 = MVar8;\n          uVar16 = uVar16 + 1;\n        } while (uVar16 != columns);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != columns);" do (compound_statement "{\n      if (MVar6 != MagickFalse) {\n        uVar16 = 0;\n        do {\n          MVar8 = MVar6;\n          if (MVar6 != MagickFalse) {\n            pQVar13 = QueueAuthenticPixels\n                                (image,(uVar16 % local_2080) * columns,\n                                 (uVar16 / local_2080) % columns + local_2070,columns,1,exception);\n            uVar5 = DAT_0043b420;\n            if (pQVar13 == (Quantum *)0x0) {\n              MVar8 = MagickFalse;\n            }\n            else {\n              dVar35 = (double)columns - DAT_003f9608;\n              dVar19 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar19 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              sVar12 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar19 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar19 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar20 = (double)uVar15 - DAT_003f9608;\n                dVar22 = (double)(long)sVar12 * dVar22 * dVar20;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar15 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar14 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar16 * dVar22 * dVar20;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar14) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;\n                fVar21 = (float)dVar20;\n                fVar30 = fVar21;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }\n                if (DAT_00420e38 <= fVar30) {\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar30;\n                }\n                fVar18 = fVar30;\n                if (uVar1 != uVar14) {\n                  fVar18 = fVar30 + DAT_00404988;\n                }\n                fVar31 = (float)uVar15;\n                fVar28 = fVar30 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                pQVar13 = pQVar13 + image->number_channels;\n                sVar12 = sVar12 + 1;\n              } while (sVar12 != columns);\n              MVar8 = SyncAuthenticPixels(image,exception);\n              if (MVar8 != MagickFalse) {\n                MVar8 = MVar6;\n              }\n            }\n          }\n          MVar6 = MVar8;\n          uVar16 = uVar16 + 1;\n        } while (uVar16 != columns);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    }" { (if_statement "if (MVar6 != MagickFalse) {\n        uVar16 = 0;\n        do {\n          MVar8 = MVar6;\n          if (MVar6 != MagickFalse) {\n            pQVar13 = QueueAuthenticPixels\n                                (image,(uVar16 % local_2080) * columns,\n                                 (uVar16 / local_2080) % columns + local_2070,columns,1,exception);\n            uVar5 = DAT_0043b420;\n            if (pQVar13 == (Quantum *)0x0) {\n              MVar8 = MagickFalse;\n            }\n            else {\n              dVar35 = (double)columns - DAT_003f9608;\n              dVar19 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar19 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              sVar12 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar19 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar19 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar20 = (double)uVar15 - DAT_003f9608;\n                dVar22 = (double)(long)sVar12 * dVar22 * dVar20;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar15 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar14 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar16 * dVar22 * dVar20;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar14) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;\n                fVar21 = (float)dVar20;\n                fVar30 = fVar21;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }\n                if (DAT_00420e38 <= fVar30) {\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar30;\n                }\n                fVar18 = fVar30;\n                if (uVar1 != uVar14) {\n                  fVar18 = fVar30 + DAT_00404988;\n                }\n                fVar31 = (float)uVar15;\n                fVar28 = fVar30 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                pQVar13 = pQVar13 + image->number_channels;\n                sVar12 = sVar12 + 1;\n              } while (sVar12 != columns);\n              MVar8 = SyncAuthenticPixels(image,exception);\n              if (MVar8 != MagickFalse) {\n                MVar8 = MVar6;\n              }\n            }\n          }\n          MVar6 = MVar8;\n          uVar16 = uVar16 + 1;\n        } while (uVar16 != columns);\n      }" if (parenthesized_expression "(MVar6 != MagickFalse)" ( (binary_expression "MVar6 != MagickFalse" identifier != identifier) )) (compound_statement "{\n        uVar16 = 0;\n        do {\n          MVar8 = MVar6;\n          if (MVar6 != MagickFalse) {\n            pQVar13 = QueueAuthenticPixels\n                                (image,(uVar16 % local_2080) * columns,\n                                 (uVar16 / local_2080) % columns + local_2070,columns,1,exception);\n            uVar5 = DAT_0043b420;\n            if (pQVar13 == (Quantum *)0x0) {\n              MVar8 = MagickFalse;\n            }\n            else {\n              dVar35 = (double)columns - DAT_003f9608;\n              dVar19 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar19 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              sVar12 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar19 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar19 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar20 = (double)uVar15 - DAT_003f9608;\n                dVar22 = (double)(long)sVar12 * dVar22 * dVar20;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar15 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar14 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar16 * dVar22 * dVar20;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar14) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;\n                fVar21 = (float)dVar20;\n                fVar30 = fVar21;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }\n                if (DAT_00420e38 <= fVar30) {\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar30;\n                }\n                fVar18 = fVar30;\n                if (uVar1 != uVar14) {\n                  fVar18 = fVar30 + DAT_00404988;\n                }\n                fVar31 = (float)uVar15;\n                fVar28 = fVar30 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                pQVar13 = pQVar13 + image->number_channels;\n                sVar12 = sVar12 + 1;\n              } while (sVar12 != columns);\n              MVar8 = SyncAuthenticPixels(image,exception);\n              if (MVar8 != MagickFalse) {\n                MVar8 = MVar6;\n              }\n            }\n          }\n          MVar6 = MVar8;\n          uVar16 = uVar16 + 1;\n        } while (uVar16 != columns);\n      }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (do_statement "do {\n          MVar8 = MVar6;\n          if (MVar6 != MagickFalse) {\n            pQVar13 = QueueAuthenticPixels\n                                (image,(uVar16 % local_2080) * columns,\n                                 (uVar16 / local_2080) % columns + local_2070,columns,1,exception);\n            uVar5 = DAT_0043b420;\n            if (pQVar13 == (Quantum *)0x0) {\n              MVar8 = MagickFalse;\n            }\n            else {\n              dVar35 = (double)columns - DAT_003f9608;\n              dVar19 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar19 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              sVar12 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar19 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar19 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar20 = (double)uVar15 - DAT_003f9608;\n                dVar22 = (double)(long)sVar12 * dVar22 * dVar20;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar15 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar14 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar16 * dVar22 * dVar20;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar14) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;\n                fVar21 = (float)dVar20;\n                fVar30 = fVar21;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }\n                if (DAT_00420e38 <= fVar30) {\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar30;\n                }\n                fVar18 = fVar30;\n                if (uVar1 != uVar14) {\n                  fVar18 = fVar30 + DAT_00404988;\n                }\n                fVar31 = (float)uVar15;\n                fVar28 = fVar30 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                pQVar13 = pQVar13 + image->number_channels;\n                sVar12 = sVar12 + 1;\n              } while (sVar12 != columns);\n              MVar8 = SyncAuthenticPixels(image,exception);\n              if (MVar8 != MagickFalse) {\n                MVar8 = MVar6;\n              }\n            }\n          }\n          MVar6 = MVar8;\n          uVar16 = uVar16 + 1;\n        } while (uVar16 != columns);" do (compound_statement "{\n          MVar8 = MVar6;\n          if (MVar6 != MagickFalse) {\n            pQVar13 = QueueAuthenticPixels\n                                (image,(uVar16 % local_2080) * columns,\n                                 (uVar16 / local_2080) % columns + local_2070,columns,1,exception);\n            uVar5 = DAT_0043b420;\n            if (pQVar13 == (Quantum *)0x0) {\n              MVar8 = MagickFalse;\n            }\n            else {\n              dVar35 = (double)columns - DAT_003f9608;\n              dVar19 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar19 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              sVar12 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar19 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar19 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar20 = (double)uVar15 - DAT_003f9608;\n                dVar22 = (double)(long)sVar12 * dVar22 * dVar20;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar15 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar14 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar16 * dVar22 * dVar20;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar14) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;\n                fVar21 = (float)dVar20;\n                fVar30 = fVar21;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }\n                if (DAT_00420e38 <= fVar30) {\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar30;\n                }\n                fVar18 = fVar30;\n                if (uVar1 != uVar14) {\n                  fVar18 = fVar30 + DAT_00404988;\n                }\n                fVar31 = (float)uVar15;\n                fVar28 = fVar30 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                pQVar13 = pQVar13 + image->number_channels;\n                sVar12 = sVar12 + 1;\n              } while (sVar12 != columns);\n              MVar8 = SyncAuthenticPixels(image,exception);\n              if (MVar8 != MagickFalse) {\n                MVar8 = MVar6;\n              }\n            }\n          }\n          MVar6 = MVar8;\n          uVar16 = uVar16 + 1;\n        }" { (expression_statement "MVar8 = MVar6;" (assignment_expression "MVar8 = MVar6" identifier = identifier) ;) (if_statement "if (MVar6 != MagickFalse) {\n            pQVar13 = QueueAuthenticPixels\n                                (image,(uVar16 % local_2080) * columns,\n                                 (uVar16 / local_2080) % columns + local_2070,columns,1,exception);\n            uVar5 = DAT_0043b420;\n            if (pQVar13 == (Quantum *)0x0) {\n              MVar8 = MagickFalse;\n            }\n            else {\n              dVar35 = (double)columns - DAT_003f9608;\n              dVar19 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar19 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              sVar12 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar19 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar19 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar20 = (double)uVar15 - DAT_003f9608;\n                dVar22 = (double)(long)sVar12 * dVar22 * dVar20;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar15 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar14 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar16 * dVar22 * dVar20;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar14) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;\n                fVar21 = (float)dVar20;\n                fVar30 = fVar21;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }\n                if (DAT_00420e38 <= fVar30) {\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar30;\n                }\n                fVar18 = fVar30;\n                if (uVar1 != uVar14) {\n                  fVar18 = fVar30 + DAT_00404988;\n                }\n                fVar31 = (float)uVar15;\n                fVar28 = fVar30 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                pQVar13 = pQVar13 + image->number_channels;\n                sVar12 = sVar12 + 1;\n              } while (sVar12 != columns);\n              MVar8 = SyncAuthenticPixels(image,exception);\n              if (MVar8 != MagickFalse) {\n                MVar8 = MVar6;\n              }\n            }\n          }" if (parenthesized_expression "(MVar6 != MagickFalse)" ( (binary_expression "MVar6 != MagickFalse" identifier != identifier) )) (compound_statement "{\n            pQVar13 = QueueAuthenticPixels\n                                (image,(uVar16 % local_2080) * columns,\n                                 (uVar16 / local_2080) % columns + local_2070,columns,1,exception);\n            uVar5 = DAT_0043b420;\n            if (pQVar13 == (Quantum *)0x0) {\n              MVar8 = MagickFalse;\n            }\n            else {\n              dVar35 = (double)columns - DAT_003f9608;\n              dVar19 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar19 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              sVar12 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar19 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar19 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar20 = (double)uVar15 - DAT_003f9608;\n                dVar22 = (double)(long)sVar12 * dVar22 * dVar20;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar15 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar14 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar16 * dVar22 * dVar20;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar14) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;\n                fVar21 = (float)dVar20;\n                fVar30 = fVar21;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }\n                if (DAT_00420e38 <= fVar30) {\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar30;\n                }\n                fVar18 = fVar30;\n                if (uVar1 != uVar14) {\n                  fVar18 = fVar30 + DAT_00404988;\n                }\n                fVar31 = (float)uVar15;\n                fVar28 = fVar30 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                pQVar13 = pQVar13 + image->number_channels;\n                sVar12 = sVar12 + 1;\n              } while (sVar12 != columns);\n              MVar8 = SyncAuthenticPixels(image,exception);\n              if (MVar8 != MagickFalse) {\n                MVar8 = MVar6;\n              }\n            }\n          }" { (expression_statement "pQVar13 = QueueAuthenticPixels\n                                (image,(uVar16 % local_2080) * columns,\n                                 (uVar16 / local_2080) % columns + local_2070,columns,1,exception);" (assignment_expression "pQVar13 = QueueAuthenticPixels\n                                (image,(uVar16 % local_2080) * columns,\n                                 (uVar16 / local_2080) % columns + local_2070,columns,1,exception)" identifier = (call_expression "QueueAuthenticPixels\n                                (image,(uVar16 % local_2080) * columns,\n                                 (uVar16 / local_2080) % columns + local_2070,columns,1,exception)" identifier (argument_list "(image,(uVar16 % local_2080) * columns,\n                                 (uVar16 / local_2080) % columns + local_2070,columns,1,exception)" ( identifier , (binary_expression "(uVar16 % local_2080) * columns" (parenthesized_expression "(uVar16 % local_2080)" ( (binary_expression "uVar16 % local_2080" identifier % identifier) )) * identifier) , (binary_expression "(uVar16 / local_2080) % columns + local_2070" (binary_expression "(uVar16 / local_2080) % columns" (parenthesized_expression "(uVar16 / local_2080)" ( (binary_expression "uVar16 / local_2080" identifier / identifier) )) % identifier) + identifier) , identifier , number_literal , identifier )))) ;) (expression_statement "uVar5 = DAT_0043b420;" (assignment_expression "uVar5 = DAT_0043b420" identifier = identifier) ;) (if_statement "if (pQVar13 == (Quantum *)0x0) {\n              MVar8 = MagickFalse;\n            }\n            else {\n              dVar35 = (double)columns - DAT_003f9608;\n              dVar19 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar19 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              sVar12 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar19 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar19 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar20 = (double)uVar15 - DAT_003f9608;\n                dVar22 = (double)(long)sVar12 * dVar22 * dVar20;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar15 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar14 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar16 * dVar22 * dVar20;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar14) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;\n                fVar21 = (float)dVar20;\n                fVar30 = fVar21;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }\n                if (DAT_00420e38 <= fVar30) {\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar30;\n                }\n                fVar18 = fVar30;\n                if (uVar1 != uVar14) {\n                  fVar18 = fVar30 + DAT_00404988;\n                }\n                fVar31 = (float)uVar15;\n                fVar28 = fVar30 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                pQVar13 = pQVar13 + image->number_channels;\n                sVar12 = sVar12 + 1;\n              } while (sVar12 != columns);\n              MVar8 = SyncAuthenticPixels(image,exception);\n              if (MVar8 != MagickFalse) {\n                MVar8 = MVar6;\n              }\n            }" if (parenthesized_expression "(pQVar13 == (Quantum *)0x0)" ( (binary_expression "pQVar13 == (Quantum *)0x0" identifier == (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              MVar8 = MagickFalse;\n            }" { (expression_statement "MVar8 = MagickFalse;" (assignment_expression "MVar8 = MagickFalse" identifier = identifier) ;) }) (else_clause "else {\n              dVar35 = (double)columns - DAT_003f9608;\n              dVar19 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar19 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              sVar12 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar19 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar19 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar20 = (double)uVar15 - DAT_003f9608;\n                dVar22 = (double)(long)sVar12 * dVar22 * dVar20;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar15 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar14 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar16 * dVar22 * dVar20;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar14) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;\n                fVar21 = (float)dVar20;\n                fVar30 = fVar21;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }\n                if (DAT_00420e38 <= fVar30) {\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar30;\n                }\n                fVar18 = fVar30;\n                if (uVar1 != uVar14) {\n                  fVar18 = fVar30 + DAT_00404988;\n                }\n                fVar31 = (float)uVar15;\n                fVar28 = fVar30 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                pQVar13 = pQVar13 + image->number_channels;\n                sVar12 = sVar12 + 1;\n              } while (sVar12 != columns);\n              MVar8 = SyncAuthenticPixels(image,exception);\n              if (MVar8 != MagickFalse) {\n                MVar8 = MVar6;\n              }\n            }" else (compound_statement "{\n              dVar35 = (double)columns - DAT_003f9608;\n              dVar19 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar19 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              sVar12 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar19 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar19 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar20 = (double)uVar15 - DAT_003f9608;\n                dVar22 = (double)(long)sVar12 * dVar22 * dVar20;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar15 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar14 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar16 * dVar22 * dVar20;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar14) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;\n                fVar21 = (float)dVar20;\n                fVar30 = fVar21;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }\n                if (DAT_00420e38 <= fVar30) {\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar30;\n                }\n                fVar18 = fVar30;\n                if (uVar1 != uVar14) {\n                  fVar18 = fVar30 + DAT_00404988;\n                }\n                fVar31 = (float)uVar15;\n                fVar28 = fVar30 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                pQVar13 = pQVar13 + image->number_channels;\n                sVar12 = sVar12 + 1;\n              } while (sVar12 != columns);\n              MVar8 = SyncAuthenticPixels(image,exception);\n              if (MVar8 != MagickFalse) {\n                MVar8 = MVar6;\n              }\n            }" { (expression_statement "dVar35 = (double)columns - DAT_003f9608;" (assignment_expression "dVar35 = (double)columns - DAT_003f9608" identifier = (binary_expression "(double)columns - DAT_003f9608" (cast_expression "(double)columns" ( (type_descriptor "double" primitive_type) ) identifier) - identifier)) ;) (expression_statement "dVar19 = DAT_003f9c68;" (assignment_expression "dVar19 = DAT_003f9c68" identifier = identifier) ;) (if_statement "if (0.0 <= dVar35) {\n                dVar19 = DAT_003f9608;\n              }" if (parenthesized_expression "(0.0 <= dVar35)" ( (binary_expression "0.0 <= dVar35" number_literal <= identifier) )) (compound_statement "{\n                dVar19 = DAT_003f9608;\n              }" { (expression_statement "dVar19 = DAT_003f9608;" (assignment_expression "dVar19 = DAT_003f9608" identifier = identifier) ;) })) (expression_statement "dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;" (assignment_expression "dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608" identifier = (binary_expression "(double)local_2080 * (double)local_2080 - DAT_003f9608" (binary_expression "(double)local_2080 * (double)local_2080" (cast_expression "(double)local_2080" ( (type_descriptor "double" primitive_type) ) identifier) * (cast_expression "(double)local_2080" ( (type_descriptor "double" primitive_type) ) identifier)) - identifier)) ;) (expression_statement "dVar36 = DAT_003f9c68;" (assignment_expression "dVar36 = DAT_003f9c68" identifier = identifier) ;) (if_statement "if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }" if (parenthesized_expression "(0.0 <= dVar34)" ( (binary_expression "0.0 <= dVar34" number_literal <= identifier) )) (compound_statement "{\n                dVar36 = DAT_003f9608;\n              }" { (expression_statement "dVar36 = DAT_003f9608;" (assignment_expression "dVar36 = DAT_003f9608" identifier = identifier) ;) })) (expression_statement "sVar12 = 0;" (assignment_expression "sVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                fVar4 = _DAT_003fa400;\n                if (dVar19 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar19 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar20 = (double)uVar15 - DAT_003f9608;\n                dVar22 = (double)(long)sVar12 * dVar22 * dVar20;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar15 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar14 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar16 * dVar22 * dVar20;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar14) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;\n                fVar21 = (float)dVar20;\n                fVar30 = fVar21;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }\n                if (DAT_00420e38 <= fVar30) {\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar30;\n                }\n                fVar18 = fVar30;\n                if (uVar1 != uVar14) {\n                  fVar18 = fVar30 + DAT_00404988;\n                }\n                fVar31 = (float)uVar15;\n                fVar28 = fVar30 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                pQVar13 = pQVar13 + image->number_channels;\n                sVar12 = sVar12 + 1;\n              } while (sVar12 != columns);" do (compound_statement "{\n                fVar4 = _DAT_003fa400;\n                if (dVar19 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar19 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar20 = (double)uVar15 - DAT_003f9608;\n                dVar22 = (double)(long)sVar12 * dVar22 * dVar20;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar15 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar14 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar16 * dVar22 * dVar20;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar14) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;\n                fVar21 = (float)dVar20;\n                fVar30 = fVar21;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }\n                if (DAT_00420e38 <= fVar30) {\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar30;\n                }\n                fVar18 = fVar30;\n                if (uVar1 != uVar14) {\n                  fVar18 = fVar30 + DAT_00404988;\n                }\n                fVar31 = (float)uVar15;\n                fVar28 = fVar30 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                pQVar13 = pQVar13 + image->number_channels;\n                sVar12 = sVar12 + 1;\n              }" { (expression_statement "fVar4 = _DAT_003fa400;" (assignment_expression "fVar4 = _DAT_003fa400" identifier = identifier) ;) (if_statement "if (dVar19 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar19 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }" if (parenthesized_expression "(dVar19 * dVar35 < DAT_003f9600)" ( (binary_expression "dVar19 * dVar35 < DAT_003f9600" (binary_expression "dVar19 * dVar35" identifier * identifier) < identifier) )) (compound_statement "{\n                  dVar22 = dVar19 / DAT_003f9600;\n                }" { (expression_statement "dVar22 = dVar19 / DAT_003f9600;" (assignment_expression "dVar22 = dVar19 / DAT_003f9600" identifier = (binary_expression "dVar19 / DAT_003f9600" identifier / identifier)) ;) }) (else_clause "else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }" else (compound_statement "{\n                  dVar22 = DAT_003f9608 / dVar35;\n                }" { (expression_statement "dVar22 = DAT_003f9608 / dVar35;" (assignment_expression "dVar22 = DAT_003f9608 / dVar35" identifier = (binary_expression "DAT_003f9608 / dVar35" identifier / identifier)) ;) }))) (expression_statement "dVar20 = (double)uVar15 - DAT_003f9608;" (assignment_expression "dVar20 = (double)uVar15 - DAT_003f9608" identifier = (binary_expression "(double)uVar15 - DAT_003f9608" (cast_expression "(double)uVar15" ( (type_descriptor "double" primitive_type) ) identifier) - identifier)) ;) (expression_statement "dVar22 = (double)(long)sVar12 * dVar22 * dVar20;" (assignment_expression "dVar22 = (double)(long)sVar12 * dVar22 * dVar20" identifier = (binary_expression "(double)(long)sVar12 * dVar22 * dVar20" (binary_expression "(double)(long)sVar12 * dVar22" (cast_expression "(double)(long)sVar12" ( (type_descriptor "double" primitive_type) ) (cast_expression "(long)sVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) * identifier) * identifier)) ;) (expression_statement "fVar26 = (float)dVar22;" (assignment_expression "fVar26 = (float)dVar22" identifier = (cast_expression "(float)dVar22" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "fVar23 = fVar26;" (assignment_expression "fVar23 = fVar26" identifier = identifier) ;) (if_statement "if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }" if (parenthesized_expression "((float)((uint)fVar26 & uVar5) < _DAT_0043b430)" ( (binary_expression "(float)((uint)fVar26 & uVar5) < _DAT_0043b430" (cast_expression "(float)((uint)fVar26 & uVar5)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((uint)fVar26 & uVar5)" ( (binary_expression "(uint)fVar26 & uVar5" (cast_expression "(uint)fVar26" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) ))) < identifier) )) (compound_statement "{\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }" { (expression_statement "fVar23 = (float)(int)dVar22;" (assignment_expression "fVar23 = (float)(int)dVar22" identifier = (cast_expression "(float)(int)dVar22" ( (type_descriptor "float" primitive_type) ) (cast_expression "(int)dVar22" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);" (assignment_expression "fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26)" identifier = (cast_expression "(float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26)" ( (binary_expression "(uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26" (call_expression "(uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988))" ( (binary_expression "fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)" identifier - (cast_expression "(float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)" ( (binary_expression "-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988" (unary_expression "-(uint)(fVar26 < fVar23)" - (call_expression "(uint)(fVar26 < fVar23)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(fVar26 < fVar23)" ( (binary_expression "fVar26 < fVar23" identifier < identifier) )))) & (cast_expression "(uint)DAT_00404988" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ))) | (binary_expression "~uVar5 & (uint)fVar26" (unary_expression "~uVar5" ~ identifier) & (cast_expression "(uint)fVar26" ( (type_descriptor "uint" type_identifier) ) identifier))) )))) ;) })) (expression_statement "uVar1 = uVar15 - 1;" (assignment_expression "uVar1 = uVar15 - 1" identifier = (binary_expression "uVar15 - 1" identifier - number_literal)) ;) (if_statement "if (DAT_00420e38 <= fVar23) {\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar23;\n                }" if (parenthesized_expression "(DAT_00420e38 <= fVar23)" ( (binary_expression "DAT_00420e38 <= fVar23" identifier <= identifier) )) (compound_statement "{\n                  uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }" { (expression_statement "uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;" (assignment_expression "uVar14 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000" identifier = (binary_expression "(long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000" (cast_expression "(long)(fVar23 - DAT_00420e38)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar23 - DAT_00420e38)" ( (binary_expression "fVar23 - DAT_00420e38" identifier - identifier) ))) ^ number_literal)) ;) }) (else_clause "else {\n                  uVar14 = (ulong)fVar23;\n                }" else (compound_statement "{\n                  uVar14 = (ulong)fVar23;\n                }" { (expression_statement "uVar14 = (ulong)fVar23;" (assignment_expression "uVar14 = (ulong)fVar23" identifier = (cast_expression "(ulong)fVar23" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }))) (expression_statement "fVar33 = fVar23;" (assignment_expression "fVar33 = fVar23" identifier = identifier) ;) (if_statement "if (uVar14 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }" if (parenthesized_expression "(uVar14 != uVar1)" ( (binary_expression "uVar14 != uVar1" identifier != identifier) )) (compound_statement "{\n                  fVar33 = fVar23 + DAT_00404988;\n                }" { (expression_statement "fVar33 = fVar23 + DAT_00404988;" (assignment_expression "fVar33 = fVar23 + DAT_00404988" identifier = (binary_expression "fVar23 + DAT_00404988" identifier + identifier)) ;) })) (if_statement "if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }" if (parenthesized_expression "(dVar36 * dVar34 < DAT_003f9600)" ( (binary_expression "dVar36 * dVar34 < DAT_003f9600" (binary_expression "dVar36 * dVar34" identifier * identifier) < identifier) )) (compound_statement "{\n                  dVar22 = dVar36 / DAT_003f9600;\n                }" { (expression_statement "dVar22 = dVar36 / DAT_003f9600;" (assignment_expression "dVar22 = dVar36 / DAT_003f9600" identifier = (binary_expression "dVar36 / DAT_003f9600" identifier / identifier)) ;) }) (else_clause "else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }" else (compound_statement "{\n                  dVar22 = DAT_003f9608 / dVar34;\n                }" { (expression_statement "dVar22 = DAT_003f9608 / dVar34;" (assignment_expression "dVar22 = DAT_003f9608 / dVar34" identifier = (binary_expression "DAT_003f9608 / dVar34" identifier / identifier)) ;) }))) (expression_statement "dVar25 = (double)(long)uVar16 * dVar22 * dVar20;" (assignment_expression "dVar25 = (double)(long)uVar16 * dVar22 * dVar20" identifier = (binary_expression "(double)(long)uVar16 * dVar22 * dVar20" (binary_expression "(double)(long)uVar16 * dVar22" (cast_expression "(double)(long)uVar16" ( (type_descriptor "double" primitive_type) ) (cast_expression "(long)uVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) * identifier) * identifier)) ;) (expression_statement "fVar24 = (float)dVar25;" (assignment_expression "fVar24 = (float)dVar25" identifier = (cast_expression "(float)dVar25" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "fVar29 = fVar24;" (assignment_expression "fVar29 = fVar24" identifier = identifier) ;) (if_statement "if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }" if (parenthesized_expression "((float)((uint)fVar24 & uVar5) < _DAT_0043b430)" ( (binary_expression "(float)((uint)fVar24 & uVar5) < _DAT_0043b430" (cast_expression "(float)((uint)fVar24 & uVar5)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((uint)fVar24 & uVar5)" ( (binary_expression "(uint)fVar24 & uVar5" (cast_expression "(uint)fVar24" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) ))) < identifier) )) (compound_statement "{\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }" { (expression_statement "fVar29 = (float)(int)dVar25;" (assignment_expression "fVar29 = (float)(int)dVar25" identifier = (cast_expression "(float)(int)dVar25" ( (type_descriptor "float" primitive_type) ) (cast_expression "(int)dVar25" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);" (assignment_expression "fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24)" identifier = (cast_expression "(float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24)" ( (binary_expression "(uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24" (call_expression "(uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988))" ( (binary_expression "fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)" identifier - (cast_expression "(float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)" ( (binary_expression "-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988" (unary_expression "-(uint)(fVar24 < fVar29)" - (call_expression "(uint)(fVar24 < fVar29)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(fVar24 < fVar29)" ( (binary_expression "fVar24 < fVar29" identifier < identifier) )))) & (cast_expression "(uint)DAT_00404988" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ))) | (binary_expression "~uVar5 & (uint)fVar24" (unary_expression "~uVar5" ~ identifier) & (cast_expression "(uint)fVar24" ( (type_descriptor "uint" type_identifier) ) identifier))) )))) ;) })) (if_statement "if (DAT_00420e38 <= fVar29) {\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar29;\n                }" if (parenthesized_expression "(DAT_00420e38 <= fVar29)" ( (binary_expression "DAT_00420e38 <= fVar29" identifier <= identifier) )) (compound_statement "{\n                  uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }" { (expression_statement "uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;" (assignment_expression "uVar14 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000" identifier = (binary_expression "(long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000" (cast_expression "(long)(fVar29 - DAT_00420e38)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar29 - DAT_00420e38)" ( (binary_expression "fVar29 - DAT_00420e38" identifier - identifier) ))) ^ number_literal)) ;) }) (else_clause "else {\n                  uVar14 = (ulong)fVar29;\n                }" else (compound_statement "{\n                  uVar14 = (ulong)fVar29;\n                }" { (expression_statement "uVar14 = (ulong)fVar29;" (assignment_expression "uVar14 = (ulong)fVar29" identifier = (cast_expression "(ulong)fVar29" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }))) (expression_statement "fVar27 = fVar29;" (assignment_expression "fVar27 = fVar29" identifier = identifier) ;) (if_statement "if (uVar1 != uVar14) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }" if (parenthesized_expression "(uVar1 != uVar14)" ( (binary_expression "uVar1 != uVar14" identifier != identifier) )) (compound_statement "{\n                  fVar27 = fVar29 + DAT_00404988;\n                }" { (expression_statement "fVar27 = fVar29 + DAT_00404988;" (assignment_expression "fVar27 = fVar29 + DAT_00404988" identifier = (binary_expression "fVar29 + DAT_00404988" identifier + identifier)) ;) })) (expression_statement "dVar20 = dVar22 * (double)(long)local_20a8 * dVar20;" (assignment_expression "dVar20 = dVar22 * (double)(long)local_20a8 * dVar20" identifier = (binary_expression "dVar22 * (double)(long)local_20a8 * dVar20" (binary_expression "dVar22 * (double)(long)local_20a8" identifier * (cast_expression "(double)(long)local_20a8" ( (type_descriptor "double" primitive_type) ) (cast_expression "(long)local_20a8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) * identifier)) ;) (expression_statement "fVar21 = (float)dVar20;" (assignment_expression "fVar21 = (float)dVar20" identifier = (cast_expression "(float)dVar20" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "fVar30 = fVar21;" (assignment_expression "fVar30 = fVar21" identifier = identifier) ;) (if_statement "if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }" if (parenthesized_expression "((float)((uint)fVar21 & uVar5) < _DAT_0043b430)" ( (binary_expression "(float)((uint)fVar21 & uVar5) < _DAT_0043b430" (cast_expression "(float)((uint)fVar21 & uVar5)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((uint)fVar21 & uVar5)" ( (binary_expression "(uint)fVar21 & uVar5" (cast_expression "(uint)fVar21" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) ))) < identifier) )) (compound_statement "{\n                  fVar30 = (float)(int)dVar20;\n                  fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);\n                }" { (expression_statement "fVar30 = (float)(int)dVar20;" (assignment_expression "fVar30 = (float)(int)dVar20" identifier = (cast_expression "(float)(int)dVar20" ( (type_descriptor "float" primitive_type) ) (cast_expression "(int)dVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21);" (assignment_expression "fVar30 = (float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21)" identifier = (cast_expression "(float)((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21)" ( (binary_expression "(uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar21" (call_expression "(uint)(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988))" ( (binary_expression "fVar30 - (float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)" identifier - (cast_expression "(float)(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988)" ( (binary_expression "-(uint)(fVar21 < fVar30) &\n                                                          (uint)DAT_00404988" (unary_expression "-(uint)(fVar21 < fVar30)" - (call_expression "(uint)(fVar21 < fVar30)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(fVar21 < fVar30)" ( (binary_expression "fVar21 < fVar30" identifier < identifier) )))) & (cast_expression "(uint)DAT_00404988" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ))) | (binary_expression "~uVar5 & (uint)fVar21" (unary_expression "~uVar5" ~ identifier) & (cast_expression "(uint)fVar21" ( (type_descriptor "uint" type_identifier) ) identifier))) )))) ;) })) (if_statement "if (DAT_00420e38 <= fVar30) {\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar14 = (ulong)fVar30;\n                }" if (parenthesized_expression "(DAT_00420e38 <= fVar30)" ( (binary_expression "DAT_00420e38 <= fVar30" identifier <= identifier) )) (compound_statement "{\n                  uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;\n                }" { (expression_statement "uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000;" (assignment_expression "uVar14 = (long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000" identifier = (binary_expression "(long)(fVar30 - DAT_00420e38) ^ 0x8000000000000000" (cast_expression "(long)(fVar30 - DAT_00420e38)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar30 - DAT_00420e38)" ( (binary_expression "fVar30 - DAT_00420e38" identifier - identifier) ))) ^ number_literal)) ;) }) (else_clause "else {\n                  uVar14 = (ulong)fVar30;\n                }" else (compound_statement "{\n                  uVar14 = (ulong)fVar30;\n                }" { (expression_statement "uVar14 = (ulong)fVar30;" (assignment_expression "uVar14 = (ulong)fVar30" identifier = (cast_expression "(ulong)fVar30" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }))) (expression_statement "fVar18 = fVar30;" (assignment_expression "fVar18 = fVar30" identifier = identifier) ;) (if_statement "if (uVar1 != uVar14) {\n                  fVar18 = fVar30 + DAT_00404988;\n                }" if (parenthesized_expression "(uVar1 != uVar14)" ( (binary_expression "uVar1 != uVar14" identifier != identifier) )) (compound_statement "{\n                  fVar18 = fVar30 + DAT_00404988;\n                }" { (expression_statement "fVar18 = fVar30 + DAT_00404988;" (assignment_expression "fVar18 = fVar30 + DAT_00404988" identifier = (binary_expression "fVar30 + DAT_00404988" identifier + identifier)) ;) })) (expression_statement "fVar31 = (float)uVar15;" (assignment_expression "fVar31 = (float)uVar15" identifier = (cast_expression "(float)uVar15" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "fVar28 = fVar30 * fVar31 * fVar31;" (assignment_expression "fVar28 = fVar30 * fVar31 * fVar31" identifier = (binary_expression "fVar30 * fVar31 * fVar31" (binary_expression "fVar30 * fVar31" identifier * identifier) * identifier)) ;) (expression_statement "fVar32 = fVar28 + fVar29 * fVar31;" (assignment_expression "fVar32 = fVar28 + fVar29 * fVar31" identifier = (binary_expression "fVar28 + fVar29 * fVar31" identifier + (binary_expression "fVar29 * fVar31" identifier * identifier))) ;) (expression_statement "pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);" (assignment_expression "pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc)" identifier = (cast_expression "(float *)((long)__s + (long)(fVar23 + fVar32) * 0xc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + (long)(fVar23 + fVar32) * 0xc)" ( (binary_expression "(long)__s + (long)(fVar23 + fVar32) * 0xc" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(long)(fVar23 + fVar32) * 0xc" (cast_expression "(long)(fVar23 + fVar32)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar23 + fVar32)" ( (binary_expression "fVar23 + fVar32" identifier + identifier) ))) * number_literal)) )))) ;) (expression_statement "pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;" (assignment_expression "pQVar13[image->channel_map->offset] =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400" (subscript_expression "pQVar13[image->channel_map->offset]" identifier [ (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) ]) = (binary_expression "((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400" (parenthesized_expression "((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2)" ( (binary_expression "(fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2" (binary_expression "(fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2)" (parenthesized_expression "(fVar26 - fVar23)" ( (binary_expression "fVar26 - fVar23" identifier - identifier) )) * (parenthesized_expression "(*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2)" ( (binary_expression "*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2" (pointer_expression "*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc)" * (cast_expression "(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + (long)(fVar32 + fVar33) * 0xc)" ( (binary_expression "(long)__s + (long)(fVar32 + fVar33) * 0xc" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(long)(fVar32 + fVar33) * 0xc" (cast_expression "(long)(fVar32 + fVar33)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar32 + fVar33)" ( (binary_expression "fVar32 + fVar33" identifier + identifier) ))) * number_literal)) )))) - (pointer_expression "*pfVar2" * identifier)) ))) + (pointer_expression "*pfVar2" * identifier)) )) * identifier)) ;) (expression_statement "pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;" (assignment_expression "pQVar13[image->channel_map[1].offset] =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4" (subscript_expression "pQVar13[image->channel_map[1].offset]" identifier [ (field_expression "image->channel_map[1].offset" (subscript_expression "image->channel_map[1]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]) = (binary_expression "((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4" (parenthesized_expression "((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1])" ( (binary_expression "(fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]" (binary_expression "(fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1])" (parenthesized_expression "(fVar24 - fVar29)" ( (binary_expression "fVar24 - fVar29" identifier - identifier) )) * (parenthesized_expression "(*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1])" ( (binary_expression "*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]" (pointer_expression "*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4)" * (cast_expression "(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4)" ( (binary_expression "(long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4" (binary_expression "(long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc" (cast_expression "(long)(fVar28 + fVar27 * fVar31 + fVar23)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar28 + fVar27 * fVar31 + fVar23)" ( (binary_expression "fVar28 + fVar27 * fVar31 + fVar23" (binary_expression "fVar28 + fVar27 * fVar31" identifier + (binary_expression "fVar27 * fVar31" identifier * identifier)) + identifier) ))) * number_literal)) + number_literal) )))) - (subscript_expression "pfVar2[1]" identifier [ number_literal ])) ))) + (subscript_expression "pfVar2[1]" identifier [ number_literal ])) )) * identifier)) ;) (expression_statement "pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4;" (assignment_expression "pQVar13[image->channel_map[2].offset] =\n                     ((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4" (subscript_expression "pQVar13[image->channel_map[2].offset]" identifier [ (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) ]) = (binary_expression "((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]) * fVar4" (parenthesized_expression "((fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2])" ( (binary_expression "(fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]) + pfVar2[2]" (binary_expression "(fVar21 - fVar30) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2])" (parenthesized_expression "(fVar21 - fVar30)" ( (binary_expression "fVar21 - fVar30" identifier - identifier) )) * (parenthesized_expression "(*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2])" ( (binary_expression "*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8) - pfVar2[2]" (pointer_expression "*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8)" * (cast_expression "(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8)" ( (binary_expression "(long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc +\n                                 8" (binary_expression "(long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31) * 0xc" (cast_expression "(long)(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31)" ( (binary_expression "fVar23 + fVar29 * fVar31 + fVar31 * fVar18 * fVar31" (binary_expression "fVar23 + fVar29 * fVar31" identifier + (binary_expression "fVar29 * fVar31" identifier * identifier)) + (binary_expression "fVar31 * fVar18 * fVar31" (binary_expression "fVar31 * fVar18" identifier * identifier) * identifier)) ))) * number_literal)) + number_literal) )))) - (subscript_expression "pfVar2[2]" identifier [ number_literal ])) ))) + (subscript_expression "pfVar2[2]" identifier [ number_literal ])) )) * identifier)) ;) (expression_statement "pQVar13 = pQVar13 + image->number_channels;" (assignment_expression "pQVar13 = pQVar13 + image->number_channels" identifier = (binary_expression "pQVar13 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "sVar12 = sVar12 + 1;" (assignment_expression "sVar12 = sVar12 + 1" identifier = (binary_expression "sVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(sVar12 != columns)" ( (binary_expression "sVar12 != columns" identifier != identifier) )) ;) (expression_statement "MVar8 = SyncAuthenticPixels(image,exception);" (assignment_expression "MVar8 = SyncAuthenticPixels(image,exception)" identifier = (call_expression "SyncAuthenticPixels(image,exception)" identifier (argument_list "(image,exception)" ( identifier , identifier )))) ;) (if_statement "if (MVar8 != MagickFalse) {\n                MVar8 = MVar6;\n              }" if (parenthesized_expression "(MVar8 != MagickFalse)" ( (binary_expression "MVar8 != MagickFalse" identifier != identifier) )) (compound_statement "{\n                MVar8 = MVar6;\n              }" { (expression_statement "MVar8 = MVar6;" (assignment_expression "MVar8 = MVar6" identifier = identifier) ;) })) }))) })) (expression_statement "MVar6 = MVar8;" (assignment_expression "MVar6 = MVar8" identifier = identifier) ;) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar16 != columns)" ( (binary_expression "uVar16 != columns" identifier != identifier) )) ;) })) (expression_statement "local_20a8 = local_20a8 + 1;" (assignment_expression "local_20a8 = local_20a8 + 1" identifier = (binary_expression "local_20a8 + 1" identifier + number_literal)) ;) (expression_statement "local_2070 = local_2070 + local_2080;" (assignment_expression "local_2070 = local_2070 + local_2080" identifier = (binary_expression "local_2070 + local_2080" identifier + identifier)) ;) }) while (parenthesized_expression "(local_20a8 != columns)" ( (binary_expression "local_20a8 != columns" identifier != identifier) )) ;) (expression_statement "RelinquishVirtualMemory(local_20a0);" (call_expression "RelinquishVirtualMemory(local_20a0)" identifier (argument_list "(local_20a0)" ( identifier ))) ;) (expression_statement "CloseBlob(image);" (call_expression "CloseBlob(image)" identifier (argument_list "(image)" ( identifier ))) ;) (if_statement "if (MVar6 == MagickFalse) {\n      pIVar11 = DestroyImageList(image);\n      goto LAB_0033a403;\n    }" if (parenthesized_expression "(MVar6 == MagickFalse)" ( (binary_expression "MVar6 == MagickFalse" identifier == identifier) )) (compound_statement "{\n      pIVar11 = DestroyImageList(image);\n      goto LAB_0033a403;\n    }" { (expression_statement "pIVar11 = DestroyImageList(image);" (assignment_expression "pIVar11 = DestroyImageList(image)" identifier = (call_expression "DestroyImageList(image)" identifier (argument_list "(image)" ( identifier )))) ;) (goto_statement "goto LAB_0033a403;" goto statement_identifier ;) })) }))) (if_statement "if (0 < (long)image_info->scene) {\n    lVar17 = 0;\n    do {\n      pIVar11 = CloneImage(image,0,0,MagickTrue,exception);\n      AppendImageToList(&image,pIVar11);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 < (long)image_info->scene);\n  }" if (parenthesized_expression "(0 < (long)image_info->scene)" ( (binary_expression "0 < (long)image_info->scene" number_literal < (cast_expression "(long)image_info->scene" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "image_info->scene" identifier -> field_identifier))) )) (compound_statement "{\n    lVar17 = 0;\n    do {\n      pIVar11 = CloneImage(image,0,0,MagickTrue,exception);\n      AppendImageToList(&image,pIVar11);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 < (long)image_info->scene);\n  }" { (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" identifier = number_literal) ;) (do_statement "do {\n      pIVar11 = CloneImage(image,0,0,MagickTrue,exception);\n      AppendImageToList(&image,pIVar11);\n      lVar17 = lVar17 + 1;\n    } while (lVar17 < (long)image_info->scene);" do (compound_statement "{\n      pIVar11 = CloneImage(image,0,0,MagickTrue,exception);\n      AppendImageToList(&image,pIVar11);\n      lVar17 = lVar17 + 1;\n    }" { (expression_statement "pIVar11 = CloneImage(image,0,0,MagickTrue,exception);" (assignment_expression "pIVar11 = CloneImage(image,0,0,MagickTrue,exception)" identifier = (call_expression "CloneImage(image,0,0,MagickTrue,exception)" identifier (argument_list "(image,0,0,MagickTrue,exception)" ( identifier , number_literal , number_literal , identifier , identifier )))) ;) (expression_statement "AppendImageToList(&image,pIVar11);" (call_expression "AppendImageToList(&image,pIVar11)" identifier (argument_list "(&image,pIVar11)" ( (pointer_expression "&image" & identifier) , identifier ))) ;) (expression_statement "lVar17 = lVar17 + 1;" (assignment_expression "lVar17 = lVar17 + 1" identifier = (binary_expression "lVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar17 < (long)image_info->scene)" ( (binary_expression "lVar17 < (long)image_info->scene" identifier < (cast_expression "(long)image_info->scene" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "image_info->scene" identifier -> field_identifier))) )) ;) })) (expression_statement "pIVar11 = GetFirstImageInList(image);" (assignment_expression "pIVar11 = GetFirstImageInList(image)" identifier = (call_expression "GetFirstImageInList(image)" identifier (argument_list "(image)" ( identifier )))) ;) (labeled_statement "LAB_0033a403:\n  if (lVar3 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return pIVar11;\n  }" statement_identifier : (if_statement "if (lVar3 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return pIVar11;\n  }" if (parenthesized_expression "(lVar3 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar3 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return pIVar11;\n  }" { (return_statement "return pIVar11;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "long FUN_00339e3c(long param_1,long param_2)\n\n{\n  ulong uVar1;\n  float *pfVar2;\n  undefined4 uVar3;\n  float fVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  long lVar9;\n  undefined8 uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  void *__s;\n  ulong uVar14;\n  long lVar15;\n  ulong uVar16;\n  long in_FS_OFFSET;\n  float fVar17;\n  double dVar18;\n  double dVar19;\n  undefined1 auVar20 [16];\n  float fVar21;\n  double dVar22;\n  float fVar23;\n  float fVar24;\n  double dVar25;\n  float fVar26;\n  float fVar27;\n  float fVar28;\n  float fVar29;\n  undefined1 auVar30 [16];\n  float fVar31;\n  float fVar32;\n  float fVar33;\n  double dVar34;\n  double dVar35;\n  double dVar36;\n  ulong local_20a8;\n  long local_20a0;\n  ulong local_2080;\n  long local_2070;\n  long local_2060;\n  char *local_2058;\n  char *local_2050;\n  char local_2048 [4096];\n  char local_1048 [4104];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");\n  }\n  if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");\n  }\n  if (*(int *)(param_1 + 0x3270) != 0) {\n    LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");\n  }\n  if (*(long *)(param_2 + 0x30) != 0xabacadab) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );\n  }\n  local_2060 = AcquireImage(param_1,param_2);\n  iVar6 = OpenBlob(param_1,local_2060,2,param_2);\n  if (iVar6 == 0) {\n    DestroyImageList(local_2060);\n    lVar15 = 0;\n    goto LAB_0033a403;\n  }\n  pcVar8 = (char *)AcquireString(&DAT_00473ecb);\n  *pcVar8 = '\0';\n  lVar15 = 0;\n  uVar13 = 0;\n  local_20a0 = 0;\n  __s = (void *)0x0;\nLAB_0033a25a:\n  do {\n    do {\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));\n    iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n    if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }\n    iVar6 = LocaleCompare(local_2048,"TITLE ");\n    if (iVar6 == 0) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }\n    if (uVar13 != 0) {\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }\n  } while (0xd < (byte)(*pcVar8 - 0x2cU));\nLAB_0033a378:\n  DestroyString(pcVar8);\n  if (uVar13 == 0) {\n    if (local_20a0 != 0) {\n      RelinquishVirtualMemory(local_20a0);\n    }\n    ThrowMagickException\n              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270);\n    lVar15 = local_2060;\n    if (local_2060 != 0) {\n      CloseBlob(local_2060);\n      DestroyImageList(local_2060);\n      lVar15 = 0;\n    }\n    goto LAB_0033a403;\n  }\n  local_2080 = *(ulong *)(param_1 + 0x38);\n  if (local_2080 - 2 < 0xff) {\n    uVar16 = local_2080 * local_2080;\n    lVar15 = local_2080 * uVar16;\n    *(long *)(local_2060 + 0x20) = lVar15;\n    *(long *)(local_2060 + 0x28) = lVar15;\n    iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2);\n    if (iVar6 == 0) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n    if (0 < (long)uVar16) goto LAB_0033ab1a;\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n  }\n  else {\n    *(undefined8 *)(local_2060 + 0x20) = 0x200;\n    *(undefined8 *)(local_2060 + 0x28) = 0x200;\n    iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);\n    if (iVar6 == 0) goto LAB_0033a49e;\n    uVar16 = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != uVar16);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n    if (iVar6 == 0) {\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n  }\n  if (0 < *(long *)(param_1 + 0x38)) {\n    lVar15 = 0;\n    do {\n      uVar10 = CloneImage(local_2060,0,0,1,param_2);\n      AppendImageToList(&local_2060,uVar10);\n      lVar15 = lVar15 + 1;\n    } while (lVar15 < *(long *)(param_1 + 0x38));\n  }\n  lVar15 = GetFirstImageInList(local_2060);\nLAB_0033a403:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return lVar15;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "long FUN_00339e3c(long param_1,long param_2)\n\n{\n  ulong uVar1;\n  float *pfVar2;\n  undefined4 uVar3;\n  float fVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  long lVar9;\n  undefined8 uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  void *__s;\n  ulong uVar14;\n  long lVar15;\n  ulong uVar16;\n  long in_FS_OFFSET;\n  float fVar17;\n  double dVar18;\n  double dVar19;\n  undefined1 auVar20 [16];\n  float fVar21;\n  double dVar22;\n  float fVar23;\n  float fVar24;\n  double dVar25;\n  float fVar26;\n  float fVar27;\n  float fVar28;\n  float fVar29;\n  undefined1 auVar30 [16];\n  float fVar31;\n  float fVar32;\n  float fVar33;\n  double dVar34;\n  double dVar35;\n  double dVar36;\n  ulong local_20a8;\n  long local_20a0;\n  ulong local_2080;\n  long local_2070;\n  long local_2060;\n  char *local_2058;\n  char *local_2050;\n  char local_2048 [4096];\n  char local_1048 [4104];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");\n  }\n  if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");\n  }\n  if (*(int *)(param_1 + 0x3270) != 0) {\n    LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");\n  }\n  if (*(long *)(param_2 + 0x30) != 0xabacadab) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );\n  }\n  local_2060 = AcquireImage(param_1,param_2);\n  iVar6 = OpenBlob(param_1,local_2060,2,param_2);\n  if (iVar6 == 0) {\n    DestroyImageList(local_2060);\n    lVar15 = 0;\n    goto LAB_0033a403;\n  }\n  pcVar8 = (char *)AcquireString(&DAT_00473ecb);\n  *pcVar8 = '\0';\n  lVar15 = 0;\n  uVar13 = 0;\n  local_20a0 = 0;\n  __s = (void *)0x0;\nLAB_0033a25a:\n  do {\n    do {\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));\n    iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n    if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }\n    iVar6 = LocaleCompare(local_2048,"TITLE ");\n    if (iVar6 == 0) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }\n    if (uVar13 != 0) {\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }\n  } while (0xd < (byte)(*pcVar8 - 0x2cU));\nLAB_0033a378:\n  DestroyString(pcVar8);\n  if (uVar13 == 0) {\n    if (local_20a0 != 0) {\n      RelinquishVirtualMemory(local_20a0);\n    }\n    ThrowMagickException\n              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270);\n    lVar15 = local_2060;\n    if (local_2060 != 0) {\n      CloseBlob(local_2060);\n      DestroyImageList(local_2060);\n      lVar15 = 0;\n    }\n    goto LAB_0033a403;\n  }\n  local_2080 = *(ulong *)(param_1 + 0x38);\n  if (local_2080 - 2 < 0xff) {\n    uVar16 = local_2080 * local_2080;\n    lVar15 = local_2080 * uVar16;\n    *(long *)(local_2060 + 0x20) = lVar15;\n    *(long *)(local_2060 + 0x28) = lVar15;\n    iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2);\n    if (iVar6 == 0) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n    if (0 < (long)uVar16) goto LAB_0033ab1a;\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n  }\n  else {\n    *(undefined8 *)(local_2060 + 0x20) = 0x200;\n    *(undefined8 *)(local_2060 + 0x28) = 0x200;\n    iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);\n    if (iVar6 == 0) goto LAB_0033a49e;\n    uVar16 = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != uVar16);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n    if (iVar6 == 0) {\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n  }\n  if (0 < *(long *)(param_1 + 0x38)) {\n    lVar15 = 0;\n    do {\n      uVar10 = CloneImage(local_2060,0,0,1,param_2);\n      AppendImageToList(&local_2060,uVar10);\n      lVar15 = lVar15 + 1;\n    } while (lVar15 < *(long *)(param_1 + 0x38));\n  }\n  lVar15 = GetFirstImageInList(local_2060);\nLAB_0033a403:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return lVar15;\n  }\n                    \n  __stack_chk_fail();\n}" (sized_type_specifier "long" long) (function_declarator "FUN_00339e3c(long param_1,long param_2)" identifier (parameter_list "(long param_1,long param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  ulong uVar1;\n  float *pfVar2;\n  undefined4 uVar3;\n  float fVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  long lVar9;\n  undefined8 uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  void *__s;\n  ulong uVar14;\n  long lVar15;\n  ulong uVar16;\n  long in_FS_OFFSET;\n  float fVar17;\n  double dVar18;\n  double dVar19;\n  undefined1 auVar20 [16];\n  float fVar21;\n  double dVar22;\n  float fVar23;\n  float fVar24;\n  double dVar25;\n  float fVar26;\n  float fVar27;\n  float fVar28;\n  float fVar29;\n  undefined1 auVar30 [16];\n  float fVar31;\n  float fVar32;\n  float fVar33;\n  double dVar34;\n  double dVar35;\n  double dVar36;\n  ulong local_20a8;\n  long local_20a0;\n  ulong local_2080;\n  long local_2070;\n  long local_2060;\n  char *local_2058;\n  char *local_2050;\n  char local_2048 [4096];\n  char local_1048 [4104];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");\n  }\n  if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");\n  }\n  if (*(int *)(param_1 + 0x3270) != 0) {\n    LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");\n  }\n  if (*(long *)(param_2 + 0x30) != 0xabacadab) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );\n  }\n  local_2060 = AcquireImage(param_1,param_2);\n  iVar6 = OpenBlob(param_1,local_2060,2,param_2);\n  if (iVar6 == 0) {\n    DestroyImageList(local_2060);\n    lVar15 = 0;\n    goto LAB_0033a403;\n  }\n  pcVar8 = (char *)AcquireString(&DAT_00473ecb);\n  *pcVar8 = '\0';\n  lVar15 = 0;\n  uVar13 = 0;\n  local_20a0 = 0;\n  __s = (void *)0x0;\nLAB_0033a25a:\n  do {\n    do {\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));\n    iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n    if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }\n    iVar6 = LocaleCompare(local_2048,"TITLE ");\n    if (iVar6 == 0) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }\n    if (uVar13 != 0) {\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }\n  } while (0xd < (byte)(*pcVar8 - 0x2cU));\nLAB_0033a378:\n  DestroyString(pcVar8);\n  if (uVar13 == 0) {\n    if (local_20a0 != 0) {\n      RelinquishVirtualMemory(local_20a0);\n    }\n    ThrowMagickException\n              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270);\n    lVar15 = local_2060;\n    if (local_2060 != 0) {\n      CloseBlob(local_2060);\n      DestroyImageList(local_2060);\n      lVar15 = 0;\n    }\n    goto LAB_0033a403;\n  }\n  local_2080 = *(ulong *)(param_1 + 0x38);\n  if (local_2080 - 2 < 0xff) {\n    uVar16 = local_2080 * local_2080;\n    lVar15 = local_2080 * uVar16;\n    *(long *)(local_2060 + 0x20) = lVar15;\n    *(long *)(local_2060 + 0x28) = lVar15;\n    iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2);\n    if (iVar6 == 0) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n    if (0 < (long)uVar16) goto LAB_0033ab1a;\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n  }\n  else {\n    *(undefined8 *)(local_2060 + 0x20) = 0x200;\n    *(undefined8 *)(local_2060 + 0x28) = 0x200;\n    iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);\n    if (iVar6 == 0) goto LAB_0033a49e;\n    uVar16 = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != uVar16);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n    if (iVar6 == 0) {\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n  }\n  if (0 < *(long *)(param_1 + 0x38)) {\n    lVar15 = 0;\n    do {\n      uVar10 = CloneImage(local_2060,0,0,1,param_2);\n      AppendImageToList(&local_2060,uVar10);\n      lVar15 = lVar15 + 1;\n    } while (lVar15 < *(long *)(param_1 + 0x38));\n  }\n  lVar15 = GetFirstImageInList(local_2060);\nLAB_0033a403:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return lVar15;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "float *pfVar2;" primitive_type (pointer_declarator "*pfVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "float fVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar10;" type_identifier identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "void *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar16;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "float fVar17;" primitive_type identifier ;) (declaration "double dVar18;" primitive_type identifier ;) (declaration "double dVar19;" primitive_type identifier ;) (declaration "undefined1 auVar20 [16];" type_identifier (array_declarator "auVar20 [16]" identifier [ number_literal ]) ;) (declaration "float fVar21;" primitive_type identifier ;) (declaration "double dVar22;" primitive_type identifier ;) (declaration "float fVar23;" primitive_type identifier ;) (declaration "float fVar24;" primitive_type identifier ;) (declaration "double dVar25;" primitive_type identifier ;) (declaration "float fVar26;" primitive_type identifier ;) (declaration "float fVar27;" primitive_type identifier ;) (declaration "float fVar28;" primitive_type identifier ;) (declaration "float fVar29;" primitive_type identifier ;) (declaration "undefined1 auVar30 [16];" type_identifier (array_declarator "auVar30 [16]" identifier [ number_literal ]) ;) (declaration "float fVar31;" primitive_type identifier ;) (declaration "float fVar32;" primitive_type identifier ;) (declaration "float fVar33;" primitive_type identifier ;) (declaration "double dVar34;" primitive_type identifier ;) (declaration "double dVar35;" primitive_type identifier ;) (declaration "double dVar36;" primitive_type identifier ;) (declaration "ulong local_20a8;" type_identifier identifier ;) (declaration "long local_20a0;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong local_2080;" type_identifier identifier ;) (declaration "long local_2070;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_2060;" (sized_type_specifier "long" long) identifier ;) (declaration "char *local_2058;" primitive_type (pointer_declarator "*local_2058" * identifier) ;) (declaration "char *local_2050;" primitive_type (pointer_declarator "*local_2050" * identifier) ;) (declaration "char local_2048 [4096];" primitive_type (array_declarator "local_2048 [4096]" identifier [ number_literal ]) ;) (declaration "char local_1048 [4104];" primitive_type (array_declarator "local_1048 [4104]" identifier [ number_literal ]) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");\n  }" { (expression_statement "__assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");" (call_expression "__assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage")" identifier (argument_list "("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage")" ( (string_literal ""image_info != (const ImageInfo *) NULL"" " string_content ") , (string_literal ""coders/cube.c"" " string_content ") , number_literal , (string_literal ""ReadCUBEImage"" " string_content ") ))) ;) })) (if_statement "if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");\n  }" if (parenthesized_expression "(*(long *)(param_1 + 0x3278) != 0xabacadab)" ( (binary_expression "*(long *)(param_1 + 0x3278) != 0xabacadab" (pointer_expression "*(long *)(param_1 + 0x3278)" * (cast_expression "(long *)(param_1 + 0x3278)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3278)" ( (binary_expression "param_1 + 0x3278" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");\n  }" { (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage")" identifier (argument_list "("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage")" ( (string_literal ""image_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/cube.c"" " string_content ") , number_literal , (string_literal ""ReadCUBEImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3270) != 0) {\n    LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3270) != 0)" ( (binary_expression "*(int *)(param_1 + 0x3270) != 0" (pointer_expression "*(int *)(param_1 + 0x3270)" * (cast_expression "(int *)(param_1 + 0x3270)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3270)" ( (binary_expression "param_1 + 0x3270" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270);\n  }" { (expression_statement "LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270);" (call_expression "LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270)" identifier (argument_list "(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270)" ( number_literal , (string_literal ""coders/cube.c"" " string_content ") , (string_literal ""ReadCUBEImage"" " string_content ") , number_literal , (pointer_expression "&DAT_0041fe36" & identifier) , (binary_expression "param_1 + 0x2270" identifier + number_literal) ))) ;) })) (if_statement "if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");\n  }" { (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage")" identifier (argument_list "("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage")" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""coders/cube.c"" " string_content ") , number_literal , (string_literal ""ReadCUBEImage"" " string_content ") ))) ;) })) (if_statement "if (*(long *)(param_2 + 0x30) != 0xabacadab) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );\n  }" if (parenthesized_expression "(*(long *)(param_2 + 0x30) != 0xabacadab)" ( (binary_expression "*(long *)(param_2 + 0x30) != 0xabacadab" (pointer_expression "*(long *)(param_2 + 0x30)" * (cast_expression "(long *)(param_2 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );\n  }" { (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 )" identifier (argument_list "("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 )" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/cube.c"" " string_content ") , number_literal , (string_literal ""ReadCUBEImage"" " string_content ") ))) ;) })) (expression_statement "local_2060 = AcquireImage(param_1,param_2);" (assignment_expression "local_2060 = AcquireImage(param_1,param_2)" identifier = (call_expression "AcquireImage(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (expression_statement "iVar6 = OpenBlob(param_1,local_2060,2,param_2);" (assignment_expression "iVar6 = OpenBlob(param_1,local_2060,2,param_2)" identifier = (call_expression "OpenBlob(param_1,local_2060,2,param_2)" identifier (argument_list "(param_1,local_2060,2,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar6 == 0) {\n    DestroyImageList(local_2060);\n    lVar15 = 0;\n    goto LAB_0033a403;\n  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    DestroyImageList(local_2060);\n    lVar15 = 0;\n    goto LAB_0033a403;\n  }" { (expression_statement "DestroyImageList(local_2060);" (call_expression "DestroyImageList(local_2060)" identifier (argument_list "(local_2060)" ( identifier ))) ;) (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0033a403;" goto statement_identifier ;) })) (expression_statement "pcVar8 = (char *)AcquireString(&DAT_00473ecb);" (assignment_expression "pcVar8 = (char *)AcquireString(&DAT_00473ecb)" identifier = (cast_expression "(char *)AcquireString(&DAT_00473ecb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireString(&DAT_00473ecb)" identifier (argument_list "(&DAT_00473ecb)" ( (pointer_expression "&DAT_00473ecb" & identifier) ))))) ;) (expression_statement "*pcVar8 = '\0';" (assignment_expression "*pcVar8 = '\0'" (pointer_expression "*pcVar8" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "local_20a0 = 0;" (assignment_expression "local_20a0 = 0" identifier = number_literal) ;) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0033a25a:\n  do {\n    do {\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));\n    iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n    if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }\n    iVar6 = LocaleCompare(local_2048,"TITLE ");\n    if (iVar6 == 0) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }\n    if (uVar13 != 0) {\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }\n  } while (0xd < (byte)(*pcVar8 - 0x2cU));" statement_identifier : (do_statement "do {\n    do {\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));\n    iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n    if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }\n    iVar6 = LocaleCompare(local_2048,"TITLE ");\n    if (iVar6 == 0) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }\n    if (uVar13 != 0) {\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }\n  } while (0xd < (byte)(*pcVar8 - 0x2cU));" do (compound_statement "{\n    do {\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));\n    iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n    if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }\n    iVar6 = LocaleCompare(local_2048,"TITLE ");\n    if (iVar6 == 0) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }\n    if (uVar13 != 0) {\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }\n  }" { (do_statement "do {\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));" do (compound_statement "{\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    }" { (expression_statement "lVar9 = ReadBlobString(local_2060,pcVar8);" (assignment_expression "lVar9 = ReadBlobString(local_2060,pcVar8)" identifier = (call_expression "ReadBlobString(local_2060,pcVar8)" identifier (argument_list "(local_2060,pcVar8)" ( identifier , identifier )))) ;) (if_statement "if (lVar9 == 0) goto LAB_0033a378;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0033a378;" goto statement_identifier ;)) (expression_statement "local_2058 = pcVar8;" (assignment_expression "local_2058 = pcVar8" identifier = identifier) ;) (expression_statement "GetNextToken(pcVar8,&local_2058,0x1000,local_2048);" (call_expression "GetNextToken(pcVar8,&local_2058,0x1000,local_2048)" identifier (argument_list "(pcVar8,&local_2058,0x1000,local_2048)" ( identifier , (pointer_expression "&local_2058" & identifier) , number_literal , identifier ))) ;) }) while (parenthesized_expression "((local_2048[0] == '#') || (local_2048[0] == '\0'))" ( (binary_expression "(local_2048[0] == '#') || (local_2048[0] == '\0')" (parenthesized_expression "(local_2048[0] == '#')" ( (binary_expression "local_2048[0] == '#'" (subscript_expression "local_2048[0]" identifier [ number_literal ]) == (char_literal "'#'" ' character ')) )) || (parenthesized_expression "(local_2048[0] == '\0')" ( (binary_expression "local_2048[0] == '\0'" (subscript_expression "local_2048[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) ;) (expression_statement "iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");" (assignment_expression "iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE")" identifier = (call_expression "LocaleCompare(local_2048,"LUT_1D_SIZE")" identifier (argument_list "(local_2048,"LUT_1D_SIZE")" ( identifier , (string_literal ""LUT_1D_SIZE"" " string_content ") )))) ;) (if_statement "if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }" if (parenthesized_expression "(((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0))" ( (binary_expression "((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)" (parenthesized_expression "((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0))" ( (binary_expression "(iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)" (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)" ( (comma_expression "iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0" (assignment_expression "iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE")" identifier = (call_expression "LocaleCompare(local_2048,"LUT_3D_SIZE")" identifier (argument_list "(local_2048,"LUT_3D_SIZE")" ( identifier , (string_literal ""LUT_3D_SIZE"" " string_content ") )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(local_20a0 == 0)" ( (binary_expression "local_20a0 == 0" identifier == number_literal) ))) )) (compound_statement "{\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }" { (expression_statement "GetNextToken(local_2058,&local_2058,0x1000,local_1048);" (call_expression "GetNextToken(local_2058,&local_2058,0x1000,local_1048)" identifier (argument_list "(local_2058,&local_2058,0x1000,local_1048)" ( identifier , (pointer_expression "&local_2058" & identifier) , number_literal , identifier ))) ;) (expression_statement "uVar13 = strtol(local_1048,(char **)0x0,10);" (assignment_expression "uVar13 = strtol(local_1048,(char **)0x0,10)" identifier = (call_expression "strtol(local_1048,(char **)0x0,10)" identifier (argument_list "(local_1048,(char **)0x0,10)" ( identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (expression_statement "iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");" (assignment_expression "iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE")" identifier = (call_expression "LocaleCompare(local_2048,"LUT_1D_SIZE")" identifier (argument_list "(local_2048,"LUT_1D_SIZE")" ( identifier , (string_literal ""LUT_1D_SIZE"" " string_content ") )))) ;) (if_statement "if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }" { (expression_statement "dVar18 = pow((double)uVar13,DAT_00406790);" (assignment_expression "dVar18 = pow((double)uVar13,DAT_00406790)" identifier = (call_expression "pow((double)uVar13,DAT_00406790)" identifier (argument_list "((double)uVar13,DAT_00406790)" ( (cast_expression "(double)uVar13" ( (type_descriptor "double" primitive_type) ) identifier) , identifier )))) ;) (if_statement "if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }" if (parenthesized_expression "((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30)" ( (binary_expression "(double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30" (cast_expression "(double)((ulong)dVar18 & DAT_003f9c70)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((ulong)dVar18 & DAT_003f9c70)" ( (binary_expression "(ulong)dVar18 & DAT_003f9c70" (cast_expression "(ulong)dVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) & identifier) ))) < identifier) )) (compound_statement "{\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }" { (expression_statement "dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);" (assignment_expression "dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18)" identifier = (cast_expression "(double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18)" ( (binary_expression "(ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18" (call_expression "(ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18)" ( (binary_expression "(double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18" (cast_expression "(double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608)" ( (binary_expression "-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608" (unary_expression "-(ulong)((double)(long)dVar18 < dVar18)" - (call_expression "(ulong)((double)(long)dVar18 < dVar18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((double)(long)dVar18 < dVar18)" ( (binary_expression "(double)(long)dVar18 < dVar18" (cast_expression "(double)(long)dVar18" ( (type_descriptor "double" primitive_type) ) (cast_expression "(long)dVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < identifier) )))) & (cast_expression "(ulong)DAT_003f9608" ( (type_descriptor "ulong" type_identifier) ) identifier)) ))) + (cast_expression "(double)(long)dVar18" ( (type_descriptor "double" primitive_type) ) (cast_expression "(long)dVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ))) | (binary_expression "~DAT_003f9c70 & (ulong)dVar18" (unary_expression "~DAT_003f9c70" ~ identifier) & (cast_expression "(ulong)dVar18" ( (type_descriptor "ulong" type_identifier) ) identifier))) )))) ;) })) (if_statement "if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }" if (parenthesized_expression "(DAT_003f9c40 <= dVar18)" ( (binary_expression "DAT_003f9c40 <= dVar18" identifier <= identifier) )) (compound_statement "{\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }" { (expression_statement "uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;" (assignment_expression "uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000" identifier = (binary_expression "(long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000" (cast_expression "(long)(dVar18 - DAT_003f9c40)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(dVar18 - DAT_003f9c40)" ( (binary_expression "dVar18 - DAT_003f9c40" identifier - identifier) ))) ^ number_literal)) ;) }) (else_clause "else {\n          uVar13 = (ulong)dVar18;\n        }" else (compound_statement "{\n          uVar13 = (ulong)dVar18;\n        }" { (expression_statement "uVar13 = (ulong)dVar18;" (assignment_expression "uVar13 = (ulong)dVar18" identifier = (cast_expression "(ulong)dVar18" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }))) })) (if_statement "if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }" if (parenthesized_expression "(uVar13 - 2 < 0xff)" ( (binary_expression "uVar13 - 2 < 0xff" (binary_expression "uVar13 - 2" identifier - number_literal) < number_literal) )) (compound_statement "{\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }" { (expression_statement "local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);" (assignment_expression "local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc)" identifier = (call_expression "AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc)" identifier (argument_list "(uVar13 * uVar13,uVar13 * 0xc)" ( (binary_expression "uVar13 * uVar13" identifier * identifier) , (binary_expression "uVar13 * 0xc" identifier * number_literal) )))) ;) (if_statement "if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }" if (parenthesized_expression "(local_20a0 != 0)" ( (binary_expression "local_20a0 != 0" identifier != number_literal) )) (compound_statement "{\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }" { (expression_statement "__s = (void *)GetVirtualMemoryBlob(local_20a0);" (assignment_expression "__s = (void *)GetVirtualMemoryBlob(local_20a0)" identifier = (cast_expression "(void *)GetVirtualMemoryBlob(local_20a0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "GetVirtualMemoryBlob(local_20a0)" identifier (argument_list "(local_20a0)" ( identifier ))))) ;) (expression_statement "memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);" (call_expression "memset(__s,0,uVar13 * 0xc * uVar13 * uVar13)" identifier (argument_list "(__s,0,uVar13 * 0xc * uVar13 * uVar13)" ( identifier , number_literal , (binary_expression "uVar13 * 0xc * uVar13 * uVar13" (binary_expression "uVar13 * 0xc * uVar13" (binary_expression "uVar13 * 0xc" identifier * number_literal) * identifier) * identifier) ))) ;) (goto_statement "goto LAB_0033a25a;" goto statement_identifier ;) })) (expression_statement "DestroyString(pcVar8);" (call_expression "DestroyString(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);" (call_expression "ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270)" identifier (argument_list "(param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270)" ( identifier , (string_literal ""coders/cube.c"" " string_content ") , (string_literal ""ReadCUBEImage"" " string_content ") , number_literal , number_literal , (string_literal ""MemoryAllocationFailed"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_1 + 0x2270" identifier + number_literal) ))) ;) (if_statement "if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }" if (parenthesized_expression "(local_2060 != 0)" ( (binary_expression "local_2060 != 0" identifier != number_literal) )) (compound_statement "{\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }" { (expression_statement "CloseBlob();" (call_expression "CloseBlob()" identifier (argument_list "()" ( ))) ;) (expression_statement "DestroyImageList(local_2060);" (call_expression "DestroyImageList(local_2060)" identifier (argument_list "(local_2060)" ( identifier ))) ;) })) }) (else_clause "else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }" else (compound_statement "{\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }" { (expression_statement "DestroyString(pcVar8);" (call_expression "DestroyString(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);" (call_expression "ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270)" identifier (argument_list "(param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270)" ( identifier , (string_literal ""coders/cube.c"" " string_content ") , (string_literal ""ReadCUBEImage"" " string_content ") , number_literal , number_literal , (string_literal ""ImproperImageHeader"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_1 + 0x2270" identifier + number_literal) ))) ;) (if_statement "if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }" if (parenthesized_expression "(local_2060 != 0)" ( (binary_expression "local_2060 != 0" identifier != number_literal) )) (compound_statement "{\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }" { (expression_statement "CloseBlob();" (call_expression "CloseBlob()" identifier (argument_list "()" ( ))) ;) (expression_statement "DestroyImageList(local_2060);" (call_expression "DestroyImageList(local_2060)" identifier (argument_list "(local_2060)" ( identifier ))) ;) })) }))) (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0033a403;" goto statement_identifier ;) })) (expression_statement "iVar6 = LocaleCompare(local_2048,"TITLE ");" (assignment_expression "iVar6 = LocaleCompare(local_2048,"TITLE ")" identifier = (call_expression "LocaleCompare(local_2048,"TITLE ")" identifier (argument_list "(local_2048,"TITLE ")" ( identifier , (string_literal ""TITLE "" " string_content ") )))) ;) (if_statement "if (iVar6 == 0) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }" { (expression_statement "GetNextToken(local_2058,&local_2058,0x1000,local_1048);" (call_expression "GetNextToken(local_2058,&local_2058,0x1000,local_1048)" identifier (argument_list "(local_2058,&local_2058,0x1000,local_1048)" ( identifier , (pointer_expression "&local_2058" & identifier) , number_literal , identifier ))) ;) (expression_statement "SetImageProperty(local_2060,"title",local_1048,param_2);" (call_expression "SetImageProperty(local_2060,"title",local_1048,param_2)" identifier (argument_list "(local_2060,"title",local_1048,param_2)" ( identifier , (string_literal ""title"" " string_content ") , identifier , identifier ))) ;) (goto_statement "goto LAB_0033a25a;" goto statement_identifier ;) })) (if_statement "if (uVar13 != 0) {\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }" { (expression_statement "lVar9 = uVar13 * uVar13 * uVar13;" (assignment_expression "lVar9 = uVar13 * uVar13 * uVar13" identifier = (binary_expression "uVar13 * uVar13 * uVar13" (binary_expression "uVar13 * uVar13" identifier * identifier) * identifier)) ;) (if_statement "if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;" if (parenthesized_expression "(lVar9 - lVar15 == 0 || lVar9 < lVar15)" ( (binary_expression "lVar9 - lVar15 == 0 || lVar9 < lVar15" (binary_expression "lVar9 - lVar15 == 0" (binary_expression "lVar9 - lVar15" identifier - identifier) == number_literal) || (binary_expression "lVar9 < lVar15" identifier < identifier)) )) (break_statement "break;" break ;)) (expression_statement "local_2050 = pcVar8;" (assignment_expression "local_2050 = pcVar8" identifier = identifier) ;) (expression_statement "dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);" (assignment_expression "dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050)" identifier = (cast_expression "(double)InterpretLocaleValue(pcVar8,&local_2050)" ( (type_descriptor "double" primitive_type) ) (call_expression "InterpretLocaleValue(pcVar8,&local_2050)" identifier (argument_list "(pcVar8,&local_2050)" ( identifier , (pointer_expression "&local_2050" & identifier) ))))) ;) (expression_statement "pfVar2 = (float *)((long)__s + lVar15 * 0xc);" (assignment_expression "pfVar2 = (float *)((long)__s + lVar15 * 0xc)" identifier = (cast_expression "(float *)((long)__s + lVar15 * 0xc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + lVar15 * 0xc)" ( (binary_expression "(long)__s + lVar15 * 0xc" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "lVar15 * 0xc" identifier * number_literal)) )))) ;) (expression_statement "*pfVar2 = (float)dVar18;" (assignment_expression "*pfVar2 = (float)dVar18" (pointer_expression "*pfVar2" * identifier) = (cast_expression "(float)dVar18" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);" (assignment_expression "dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050)" identifier = (cast_expression "(double)InterpretLocaleValue(local_2050,&local_2050)" ( (type_descriptor "double" primitive_type) ) (call_expression "InterpretLocaleValue(local_2050,&local_2050)" identifier (argument_list "(local_2050,&local_2050)" ( identifier , (pointer_expression "&local_2050" & identifier) ))))) ;) (expression_statement "pfVar2[1] = (float)dVar18;" (assignment_expression "pfVar2[1] = (float)dVar18" (subscript_expression "pfVar2[1]" identifier [ number_literal ]) = (cast_expression "(float)dVar18" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);" (assignment_expression "dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050)" identifier = (cast_expression "(double)InterpretLocaleValue(local_2050,&local_2050)" ( (type_descriptor "double" primitive_type) ) (call_expression "InterpretLocaleValue(local_2050,&local_2050)" identifier (argument_list "(local_2050,&local_2050)" ( identifier , (pointer_expression "&local_2050" & identifier) ))))) ;) (expression_statement "pfVar2[2] = (float)dVar18;" (assignment_expression "pfVar2[2] = (float)dVar18" (subscript_expression "pfVar2[2]" identifier [ number_literal ]) = (cast_expression "(float)dVar18" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "lVar15 = lVar15 + 1;" (assignment_expression "lVar15 = lVar15 + 1" identifier = (binary_expression "lVar15 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0033a25a;" goto statement_identifier ;) })) }) while (parenthesized_expression "(0xd < (byte)(*pcVar8 - 0x2cU))" ( (binary_expression "0xd < (byte)(*pcVar8 - 0x2cU)" number_literal < (call_expression "(byte)(*pcVar8 - 0x2cU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*pcVar8 - 0x2cU)" ( (binary_expression "*pcVar8 - 0x2cU" (pointer_expression "*pcVar8" * identifier) - number_literal) )))) )) ;)) (labeled_statement "LAB_0033a378:\n  DestroyString(pcVar8);" statement_identifier : (expression_statement "DestroyString(pcVar8);" (call_expression "DestroyString(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;)) (if_statement "if (uVar13 == 0) {\n    if (local_20a0 != 0) {\n      RelinquishVirtualMemory(local_20a0);\n    }\n    ThrowMagickException\n              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270);\n    lVar15 = local_2060;\n    if (local_2060 != 0) {\n      CloseBlob(local_2060);\n      DestroyImageList(local_2060);\n      lVar15 = 0;\n    }\n    goto LAB_0033a403;\n  }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n    if (local_20a0 != 0) {\n      RelinquishVirtualMemory(local_20a0);\n    }\n    ThrowMagickException\n              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270);\n    lVar15 = local_2060;\n    if (local_2060 != 0) {\n      CloseBlob(local_2060);\n      DestroyImageList(local_2060);\n      lVar15 = 0;\n    }\n    goto LAB_0033a403;\n  }" { (if_statement "if (local_20a0 != 0) {\n      RelinquishVirtualMemory(local_20a0);\n    }" if (parenthesized_expression "(local_20a0 != 0)" ( (binary_expression "local_20a0 != 0" identifier != number_literal) )) (compound_statement "{\n      RelinquishVirtualMemory(local_20a0);\n    }" { (expression_statement "RelinquishVirtualMemory(local_20a0);" (call_expression "RelinquishVirtualMemory(local_20a0)" identifier (argument_list "(local_20a0)" ( identifier ))) ;) })) (expression_statement "ThrowMagickException\n              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270);" (call_expression "ThrowMagickException\n              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270)" identifier (argument_list "(param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270)" ( identifier , (string_literal ""coders/cube.c"" " string_content ") , (string_literal ""ReadCUBEImage"" " string_content ") , number_literal , number_literal , (string_literal ""ImproperImageHeader"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_1 + 0x2270" identifier + number_literal) ))) ;) (expression_statement "lVar15 = local_2060;" (assignment_expression "lVar15 = local_2060" identifier = identifier) ;) (if_statement "if (local_2060 != 0) {\n      CloseBlob(local_2060);\n      DestroyImageList(local_2060);\n      lVar15 = 0;\n    }" if (parenthesized_expression "(local_2060 != 0)" ( (binary_expression "local_2060 != 0" identifier != number_literal) )) (compound_statement "{\n      CloseBlob(local_2060);\n      DestroyImageList(local_2060);\n      lVar15 = 0;\n    }" { (expression_statement "CloseBlob(local_2060);" (call_expression "CloseBlob(local_2060)" identifier (argument_list "(local_2060)" ( identifier ))) ;) (expression_statement "DestroyImageList(local_2060);" (call_expression "DestroyImageList(local_2060)" identifier (argument_list "(local_2060)" ( identifier ))) ;) (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_0033a403;" goto statement_identifier ;) })) (expression_statement "local_2080 = *(ulong *)(param_1 + 0x38);" (assignment_expression "local_2080 = *(ulong *)(param_1 + 0x38)" identifier = (pointer_expression "*(ulong *)(param_1 + 0x38)" * (cast_expression "(ulong *)(param_1 + 0x38)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (if_statement "if (local_2080 - 2 < 0xff) {\n    uVar16 = local_2080 * local_2080;\n    lVar15 = local_2080 * uVar16;\n    *(long *)(local_2060 + 0x20) = lVar15;\n    *(long *)(local_2060 + 0x28) = lVar15;\n    iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2);\n    if (iVar6 == 0) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n    if (0 < (long)uVar16) goto LAB_0033ab1a;\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n  }\n  else {\n    *(undefined8 *)(local_2060 + 0x20) = 0x200;\n    *(undefined8 *)(local_2060 + 0x28) = 0x200;\n    iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);\n    if (iVar6 == 0) goto LAB_0033a49e;\n    uVar16 = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != uVar16);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n    if (iVar6 == 0) {\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n  }" if (parenthesized_expression "(local_2080 - 2 < 0xff)" ( (binary_expression "local_2080 - 2 < 0xff" (binary_expression "local_2080 - 2" identifier - number_literal) < number_literal) )) (compound_statement "{\n    uVar16 = local_2080 * local_2080;\n    lVar15 = local_2080 * uVar16;\n    *(long *)(local_2060 + 0x20) = lVar15;\n    *(long *)(local_2060 + 0x28) = lVar15;\n    iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2);\n    if (iVar6 == 0) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n    if (0 < (long)uVar16) goto LAB_0033ab1a;\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n  }" { (expression_statement "uVar16 = local_2080 * local_2080;" (assignment_expression "uVar16 = local_2080 * local_2080" identifier = (binary_expression "local_2080 * local_2080" identifier * identifier)) ;) (expression_statement "lVar15 = local_2080 * uVar16;" (assignment_expression "lVar15 = local_2080 * uVar16" identifier = (binary_expression "local_2080 * uVar16" identifier * identifier)) ;) (expression_statement "*(long *)(local_2060 + 0x20) = lVar15;" (assignment_expression "*(long *)(local_2060 + 0x20) = lVar15" (pointer_expression "*(long *)(local_2060 + 0x20)" * (cast_expression "(long *)(local_2060 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2060 + 0x20)" ( (binary_expression "local_2060 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(long *)(local_2060 + 0x28) = lVar15;" (assignment_expression "*(long *)(local_2060 + 0x28) = lVar15" (pointer_expression "*(long *)(local_2060 + 0x28)" * (cast_expression "(long *)(local_2060 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2060 + 0x28)" ( (binary_expression "local_2060 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2);" (assignment_expression "iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2)" identifier = (call_expression "SetImageExtent(local_2060,lVar15,lVar15,param_2)" identifier (argument_list "(local_2060,lVar15,lVar15,param_2)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar6 == 0) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }" { (labeled_statement "LAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);" statement_identifier : (expression_statement "RelinquishVirtualMemory(local_20a0);" (call_expression "RelinquishVirtualMemory(local_20a0)" identifier (argument_list "(local_20a0)" ( identifier ))) ;)) (expression_statement "lVar15 = DestroyImageList(local_2060);" (assignment_expression "lVar15 = DestroyImageList(local_2060)" identifier = (call_expression "DestroyImageList(local_2060)" identifier (argument_list "(local_2060)" ( identifier )))) ;) (goto_statement "goto LAB_0033a403;" goto statement_identifier ;) })) (if_statement "if (0 < (long)uVar16) goto LAB_0033ab1a;" if (parenthesized_expression "(0 < (long)uVar16)" ( (binary_expression "0 < (long)uVar16" number_literal < (cast_expression "(long)uVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_0033ab1a;" goto statement_identifier ;)) (expression_statement "RelinquishVirtualMemory(local_20a0);" (call_expression "RelinquishVirtualMemory(local_20a0)" identifier (argument_list "(local_20a0)" ( identifier ))) ;) (expression_statement "CloseBlob(local_2060);" (call_expression "CloseBlob(local_2060)" identifier (argument_list "(local_2060)" ( identifier ))) ;) }) (else_clause "else {\n    *(undefined8 *)(local_2060 + 0x20) = 0x200;\n    *(undefined8 *)(local_2060 + 0x28) = 0x200;\n    iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);\n    if (iVar6 == 0) goto LAB_0033a49e;\n    uVar16 = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != uVar16);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n    if (iVar6 == 0) {\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n  }" else (compound_statement "{\n    *(undefined8 *)(local_2060 + 0x20) = 0x200;\n    *(undefined8 *)(local_2060 + 0x28) = 0x200;\n    iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);\n    if (iVar6 == 0) goto LAB_0033a49e;\n    uVar16 = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != uVar16);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n    if (iVar6 == 0) {\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n  }" { (expression_statement "*(undefined8 *)(local_2060 + 0x20) = 0x200;" (assignment_expression "*(undefined8 *)(local_2060 + 0x20) = 0x200" (pointer_expression "*(undefined8 *)(local_2060 + 0x20)" * (cast_expression "(undefined8 *)(local_2060 + 0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2060 + 0x20)" ( (binary_expression "local_2060 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined8 *)(local_2060 + 0x28) = 0x200;" (assignment_expression "*(undefined8 *)(local_2060 + 0x28) = 0x200" (pointer_expression "*(undefined8 *)(local_2060 + 0x28)" * (cast_expression "(undefined8 *)(local_2060 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2060 + 0x28)" ( (binary_expression "local_2060 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);" (assignment_expression "iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2)" identifier = (call_expression "SetImageExtent(local_2060,0x200,0x200,param_2)" identifier (argument_list "(local_2060,0x200,0x200,param_2)" ( identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar6 == 0) goto LAB_0033a49e;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0033a49e;" goto statement_identifier ;)) (expression_statement "uVar16 = 0x40;" (assignment_expression "uVar16 = 0x40" identifier = number_literal) ;) (expression_statement "local_2080 = 8;" (assignment_expression "local_2080 = 8" identifier = number_literal) ;) (labeled_statement "LAB_0033ab1a:\n    local_2070 = 0;" statement_identifier : (expression_statement "local_2070 = 0;" (assignment_expression "local_2070 = 0" identifier = number_literal) ;)) (expression_statement "local_20a8 = 0;" (assignment_expression "local_20a8 = 0" identifier = number_literal) ;) (do_statement "do {\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != uVar16);" do (compound_statement "{\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    }" { (if_statement "if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);" do (compound_statement "{\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        }" { (expression_statement "iVar7 = iVar6;" (assignment_expression "iVar7 = iVar6" identifier = identifier) ;) (if_statement "if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }" { (expression_statement "lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);" (assignment_expression "lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2)" identifier = (call_expression "QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2)" identifier (argument_list "(local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2)" ( identifier , (binary_expression "(uVar14 % local_2080) * uVar16" (parenthesized_expression "(uVar14 % local_2080)" ( (binary_expression "uVar14 % local_2080" identifier % identifier) )) * identifier) , (binary_expression "(uVar14 / local_2080) % uVar16 + local_2070" (binary_expression "(uVar14 / local_2080) % uVar16" (parenthesized_expression "(uVar14 / local_2080)" ( (binary_expression "uVar14 / local_2080" identifier / identifier) )) % identifier) + identifier) , identifier , number_literal , identifier )))) ;) (expression_statement "uVar5 = DAT_0043b420;" (assignment_expression "uVar5 = DAT_0043b420" identifier = identifier) ;) (if_statement "if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar7 = 0;\n            }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }" else (compound_statement "{\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }" { (expression_statement "dVar35 = (double)uVar16 - DAT_003f9608;" (assignment_expression "dVar35 = (double)uVar16 - DAT_003f9608" identifier = (binary_expression "(double)uVar16 - DAT_003f9608" (cast_expression "(double)uVar16" ( (type_descriptor "double" primitive_type) ) identifier) - identifier)) ;) (expression_statement "dVar18 = DAT_003f9c68;" (assignment_expression "dVar18 = DAT_003f9c68" identifier = identifier) ;) (if_statement "if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }" if (parenthesized_expression "(0.0 <= dVar35)" ( (binary_expression "0.0 <= dVar35" number_literal <= identifier) )) (compound_statement "{\n                dVar18 = DAT_003f9608;\n              }" { (expression_statement "dVar18 = DAT_003f9608;" (assignment_expression "dVar18 = DAT_003f9608" identifier = identifier) ;) })) (expression_statement "dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;" (assignment_expression "dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608" identifier = (binary_expression "(double)local_2080 * (double)local_2080 - DAT_003f9608" (binary_expression "(double)local_2080 * (double)local_2080" (cast_expression "(double)local_2080" ( (type_descriptor "double" primitive_type) ) identifier) * (cast_expression "(double)local_2080" ( (type_descriptor "double" primitive_type) ) identifier)) - identifier)) ;) (expression_statement "dVar36 = DAT_003f9c68;" (assignment_expression "dVar36 = DAT_003f9c68" identifier = identifier) ;) (if_statement "if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }" if (parenthesized_expression "(0.0 <= dVar34)" ( (binary_expression "0.0 <= dVar34" number_literal <= identifier) )) (compound_statement "{\n                dVar36 = DAT_003f9608;\n              }" { (expression_statement "dVar36 = DAT_003f9608;" (assignment_expression "dVar36 = DAT_003f9608" identifier = identifier) ;) })) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);" do (compound_statement "{\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              }" { (expression_statement "fVar4 = _DAT_003fa400;" (assignment_expression "fVar4 = _DAT_003fa400" identifier = identifier) ;) (if_statement "if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }" if (parenthesized_expression "(dVar18 * dVar35 < DAT_003f9600)" ( (binary_expression "dVar18 * dVar35 < DAT_003f9600" (binary_expression "dVar18 * dVar35" identifier * identifier) < identifier) )) (compound_statement "{\n                  dVar22 = dVar18 / DAT_003f9600;\n                }" { (expression_statement "dVar22 = dVar18 / DAT_003f9600;" (assignment_expression "dVar22 = dVar18 / DAT_003f9600" identifier = (binary_expression "dVar18 / DAT_003f9600" identifier / identifier)) ;) }) (else_clause "else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }" else (compound_statement "{\n                  dVar22 = DAT_003f9608 / dVar35;\n                }" { (expression_statement "dVar22 = DAT_003f9608 / dVar35;" (assignment_expression "dVar22 = DAT_003f9608 / dVar35" identifier = (binary_expression "DAT_003f9608 / dVar35" identifier / identifier)) ;) }))) (expression_statement "dVar19 = (double)uVar13 - DAT_003f9608;" (assignment_expression "dVar19 = (double)uVar13 - DAT_003f9608" identifier = (binary_expression "(double)uVar13 - DAT_003f9608" (cast_expression "(double)uVar13" ( (type_descriptor "double" primitive_type) ) identifier) - identifier)) ;) (expression_statement "dVar22 = (double)(long)uVar11 * dVar22 * dVar19;" (assignment_expression "dVar22 = (double)(long)uVar11 * dVar22 * dVar19" identifier = (binary_expression "(double)(long)uVar11 * dVar22 * dVar19" (binary_expression "(double)(long)uVar11 * dVar22" (cast_expression "(double)(long)uVar11" ( (type_descriptor "double" primitive_type) ) (cast_expression "(long)uVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) * identifier) * identifier)) ;) (expression_statement "fVar26 = (float)dVar22;" (assignment_expression "fVar26 = (float)dVar22" identifier = (cast_expression "(float)dVar22" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "fVar23 = fVar26;" (assignment_expression "fVar23 = fVar26" identifier = identifier) ;) (if_statement "if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }" if (parenthesized_expression "((float)((uint)fVar26 & uVar5) < _DAT_0043b430)" ( (binary_expression "(float)((uint)fVar26 & uVar5) < _DAT_0043b430" (cast_expression "(float)((uint)fVar26 & uVar5)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((uint)fVar26 & uVar5)" ( (binary_expression "(uint)fVar26 & uVar5" (cast_expression "(uint)fVar26" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) ))) < identifier) )) (compound_statement "{\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }" { (expression_statement "fVar23 = (float)(int)dVar22;" (assignment_expression "fVar23 = (float)(int)dVar22" identifier = (cast_expression "(float)(int)dVar22" ( (type_descriptor "float" primitive_type) ) (cast_expression "(int)dVar22" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);" (assignment_expression "fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26)" identifier = (cast_expression "(float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26)" ( (binary_expression "(uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26" (call_expression "(uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988))" ( (binary_expression "fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)" identifier - (cast_expression "(float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)" ( (binary_expression "-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988" (unary_expression "-(uint)(fVar26 < fVar23)" - (call_expression "(uint)(fVar26 < fVar23)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(fVar26 < fVar23)" ( (binary_expression "fVar26 < fVar23" identifier < identifier) )))) & (cast_expression "(uint)DAT_00404988" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ))) | (binary_expression "~uVar5 & (uint)fVar26" (unary_expression "~uVar5" ~ identifier) & (cast_expression "(uint)fVar26" ( (type_descriptor "uint" type_identifier) ) identifier))) )))) ;) })) (expression_statement "uVar1 = uVar13 - 1;" (assignment_expression "uVar1 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (if_statement "if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }" if (parenthesized_expression "(DAT_00420e38 <= fVar23)" ( (binary_expression "DAT_00420e38 <= fVar23" identifier <= identifier) )) (compound_statement "{\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }" { (expression_statement "uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;" (assignment_expression "uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000" identifier = (binary_expression "(long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000" (cast_expression "(long)(fVar23 - DAT_00420e38)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar23 - DAT_00420e38)" ( (binary_expression "fVar23 - DAT_00420e38" identifier - identifier) ))) ^ number_literal)) ;) }) (else_clause "else {\n                  uVar12 = (ulong)fVar23;\n                }" else (compound_statement "{\n                  uVar12 = (ulong)fVar23;\n                }" { (expression_statement "uVar12 = (ulong)fVar23;" (assignment_expression "uVar12 = (ulong)fVar23" identifier = (cast_expression "(ulong)fVar23" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }))) (expression_statement "fVar33 = fVar23;" (assignment_expression "fVar33 = fVar23" identifier = identifier) ;) (if_statement "if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }" if (parenthesized_expression "(uVar12 != uVar1)" ( (binary_expression "uVar12 != uVar1" identifier != identifier) )) (compound_statement "{\n                  fVar33 = fVar23 + DAT_00404988;\n                }" { (expression_statement "fVar33 = fVar23 + DAT_00404988;" (assignment_expression "fVar33 = fVar23 + DAT_00404988" identifier = (binary_expression "fVar23 + DAT_00404988" identifier + identifier)) ;) })) (if_statement "if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }" if (parenthesized_expression "(dVar36 * dVar34 < DAT_003f9600)" ( (binary_expression "dVar36 * dVar34 < DAT_003f9600" (binary_expression "dVar36 * dVar34" identifier * identifier) < identifier) )) (compound_statement "{\n                  dVar22 = dVar36 / DAT_003f9600;\n                }" { (expression_statement "dVar22 = dVar36 / DAT_003f9600;" (assignment_expression "dVar22 = dVar36 / DAT_003f9600" identifier = (binary_expression "dVar36 / DAT_003f9600" identifier / identifier)) ;) }) (else_clause "else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }" else (compound_statement "{\n                  dVar22 = DAT_003f9608 / dVar34;\n                }" { (expression_statement "dVar22 = DAT_003f9608 / dVar34;" (assignment_expression "dVar22 = DAT_003f9608 / dVar34" identifier = (binary_expression "DAT_003f9608 / dVar34" identifier / identifier)) ;) }))) (expression_statement "dVar25 = (double)(long)uVar14 * dVar22 * dVar19;" (assignment_expression "dVar25 = (double)(long)uVar14 * dVar22 * dVar19" identifier = (binary_expression "(double)(long)uVar14 * dVar22 * dVar19" (binary_expression "(double)(long)uVar14 * dVar22" (cast_expression "(double)(long)uVar14" ( (type_descriptor "double" primitive_type) ) (cast_expression "(long)uVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) * identifier) * identifier)) ;) (expression_statement "fVar24 = (float)dVar25;" (assignment_expression "fVar24 = (float)dVar25" identifier = (cast_expression "(float)dVar25" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "fVar29 = fVar24;" (assignment_expression "fVar29 = fVar24" identifier = identifier) ;) (if_statement "if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }" if (parenthesized_expression "((float)((uint)fVar24 & uVar5) < _DAT_0043b430)" ( (binary_expression "(float)((uint)fVar24 & uVar5) < _DAT_0043b430" (cast_expression "(float)((uint)fVar24 & uVar5)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((uint)fVar24 & uVar5)" ( (binary_expression "(uint)fVar24 & uVar5" (cast_expression "(uint)fVar24" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) ))) < identifier) )) (compound_statement "{\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }" { (expression_statement "fVar29 = (float)(int)dVar25;" (assignment_expression "fVar29 = (float)(int)dVar25" identifier = (cast_expression "(float)(int)dVar25" ( (type_descriptor "float" primitive_type) ) (cast_expression "(int)dVar25" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);" (assignment_expression "fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24)" identifier = (cast_expression "(float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24)" ( (binary_expression "(uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24" (call_expression "(uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988))" ( (binary_expression "fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)" identifier - (cast_expression "(float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)" ( (binary_expression "-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988" (unary_expression "-(uint)(fVar24 < fVar29)" - (call_expression "(uint)(fVar24 < fVar29)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(fVar24 < fVar29)" ( (binary_expression "fVar24 < fVar29" identifier < identifier) )))) & (cast_expression "(uint)DAT_00404988" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ))) | (binary_expression "~uVar5 & (uint)fVar24" (unary_expression "~uVar5" ~ identifier) & (cast_expression "(uint)fVar24" ( (type_descriptor "uint" type_identifier) ) identifier))) )))) ;) })) (if_statement "if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }" if (parenthesized_expression "(DAT_00420e38 <= fVar29)" ( (binary_expression "DAT_00420e38 <= fVar29" identifier <= identifier) )) (compound_statement "{\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }" { (expression_statement "uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;" (assignment_expression "uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000" identifier = (binary_expression "(long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000" (cast_expression "(long)(fVar29 - DAT_00420e38)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar29 - DAT_00420e38)" ( (binary_expression "fVar29 - DAT_00420e38" identifier - identifier) ))) ^ number_literal)) ;) }) (else_clause "else {\n                  uVar12 = (ulong)fVar29;\n                }" else (compound_statement "{\n                  uVar12 = (ulong)fVar29;\n                }" { (expression_statement "uVar12 = (ulong)fVar29;" (assignment_expression "uVar12 = (ulong)fVar29" identifier = (cast_expression "(ulong)fVar29" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }))) (expression_statement "fVar27 = fVar29;" (assignment_expression "fVar27 = fVar29" identifier = identifier) ;) (if_statement "if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }" if (parenthesized_expression "(uVar1 != uVar12)" ( (binary_expression "uVar1 != uVar12" identifier != identifier) )) (compound_statement "{\n                  fVar27 = fVar29 + DAT_00404988;\n                }" { (expression_statement "fVar27 = fVar29 + DAT_00404988;" (assignment_expression "fVar27 = fVar29 + DAT_00404988" identifier = (binary_expression "fVar29 + DAT_00404988" identifier + identifier)) ;) })) (expression_statement "dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;" (assignment_expression "dVar19 = dVar22 * (double)(long)local_20a8 * dVar19" identifier = (binary_expression "dVar22 * (double)(long)local_20a8 * dVar19" (binary_expression "dVar22 * (double)(long)local_20a8" identifier * (cast_expression "(double)(long)local_20a8" ( (type_descriptor "double" primitive_type) ) (cast_expression "(long)local_20a8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) * identifier)) ;) (expression_statement "uVar3 = (undefined4)((ulong)dVar19 >> 0x20);" (assignment_expression "uVar3 = (undefined4)((ulong)dVar19 >> 0x20)" identifier = (call_expression "(undefined4)((ulong)dVar19 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulong)dVar19 >> 0x20)" ( (binary_expression "(ulong)dVar19 >> 0x20" (cast_expression "(ulong)dVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "fVar21 = (float)dVar19;" (assignment_expression "fVar21 = (float)dVar19" identifier = (cast_expression "(float)dVar19" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "auVar20._4_4_ = uVar3;" (assignment_expression "auVar20._4_4_ = uVar3" (field_expression "auVar20._4_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auVar20._0_4_ = fVar21;" (assignment_expression "auVar20._0_4_ = fVar21" (field_expression "auVar20._0_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auVar20._8_8_ = 0;" (assignment_expression "auVar20._8_8_ = 0" (field_expression "auVar20._8_8_" identifier . field_identifier) = number_literal) ;) (if_statement "if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }" if (parenthesized_expression "((float)((uint)fVar21 & uVar5) < _DAT_0043b430)" ( (binary_expression "(float)((uint)fVar21 & uVar5) < _DAT_0043b430" (cast_expression "(float)((uint)fVar21 & uVar5)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((uint)fVar21 & uVar5)" ( (binary_expression "(uint)fVar21 & uVar5" (cast_expression "(uint)fVar21" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) ))) < identifier) )) (compound_statement "{\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }" { (expression_statement "auVar30._0_4_ = ~uVar5 & (uint)fVar21;" (assignment_expression "auVar30._0_4_ = ~uVar5 & (uint)fVar21" (field_expression "auVar30._0_4_" identifier . field_identifier) = (binary_expression "~uVar5 & (uint)fVar21" (unary_expression "~uVar5" ~ identifier) & (cast_expression "(uint)fVar21" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "auVar30._4_4_ = uVar3;" (assignment_expression "auVar30._4_4_ = uVar3" (field_expression "auVar30._4_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auVar30._8_8_ = 0;" (assignment_expression "auVar30._8_8_ = 0" (field_expression "auVar30._8_8_" identifier . field_identifier) = number_literal) ;) (expression_statement "auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;" (assignment_expression "auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30" identifier = (binary_expression "ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30" (call_expression "ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988)))" identifier (argument_list "((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988)))" ( (call_expression "(uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))" ( (binary_expression "(float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988)" (cast_expression "(float)(int)dVar19" ( (type_descriptor "float" primitive_type) ) (cast_expression "(int)dVar19" ( (type_descriptor "int" primitive_type) ) identifier)) - (cast_expression "(float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988)" ( (binary_expression "-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988" (unary_expression "-(uint)(fVar21 < (float)(int)dVar19)" - (call_expression "(uint)(fVar21 < (float)(int)dVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(fVar21 < (float)(int)dVar19)" ( (binary_expression "fVar21 < (float)(int)dVar19" identifier < (cast_expression "(float)(int)dVar19" ( (type_descriptor "float" primitive_type) ) (cast_expression "(int)dVar19" ( (type_descriptor "int" primitive_type) ) identifier))) )))) & (cast_expression "(uint)DAT_00404988" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ))) ))) | identifier)) ;) })) (expression_statement "fVar17 = auVar20._0_4_;" (assignment_expression "fVar17 = auVar20._0_4_" identifier = (field_expression "auVar20._0_4_" identifier . field_identifier)) ;) (if_statement "if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }" if (parenthesized_expression "(DAT_00420e38 <= fVar17)" ( (binary_expression "DAT_00420e38 <= fVar17" identifier <= identifier) )) (compound_statement "{\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }" { (expression_statement "uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;" (assignment_expression "uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000" identifier = (binary_expression "(long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000" (cast_expression "(long)(fVar17 - DAT_00420e38)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar17 - DAT_00420e38)" ( (binary_expression "fVar17 - DAT_00420e38" identifier - identifier) ))) ^ number_literal)) ;) }) (else_clause "else {\n                  uVar12 = (ulong)fVar17;\n                }" else (compound_statement "{\n                  uVar12 = (ulong)fVar17;\n                }" { (expression_statement "uVar12 = (ulong)fVar17;" (assignment_expression "uVar12 = (ulong)fVar17" identifier = (cast_expression "(ulong)fVar17" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }))) (if_statement "if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }" if (parenthesized_expression "(uVar1 != uVar12)" ( (binary_expression "uVar1 != uVar12" identifier != identifier) )) (compound_statement "{\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }" { (expression_statement "auVar20._0_4_ = fVar17 + DAT_00404988;" (assignment_expression "auVar20._0_4_ = fVar17 + DAT_00404988" (field_expression "auVar20._0_4_" identifier . field_identifier) = (binary_expression "fVar17 + DAT_00404988" identifier + identifier)) ;) })) (expression_statement "fVar31 = (float)uVar13;" (assignment_expression "fVar31 = (float)uVar13" identifier = (cast_expression "(float)uVar13" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "fVar28 = fVar17 * fVar31 * fVar31;" (assignment_expression "fVar28 = fVar17 * fVar31 * fVar31" identifier = (binary_expression "fVar17 * fVar31 * fVar31" (binary_expression "fVar17 * fVar31" identifier * identifier) * identifier)) ;) (expression_statement "fVar32 = fVar28 + fVar29 * fVar31;" (assignment_expression "fVar32 = fVar28 + fVar29 * fVar31" identifier = (binary_expression "fVar28 + fVar29 * fVar31" identifier + (binary_expression "fVar29 * fVar31" identifier * identifier))) ;) (expression_statement "pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);" (assignment_expression "pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc)" identifier = (cast_expression "(float *)((long)__s + (long)(fVar23 + fVar32) * 0xc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + (long)(fVar23 + fVar32) * 0xc)" ( (binary_expression "(long)__s + (long)(fVar23 + fVar32) * 0xc" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(long)(fVar23 + fVar32) * 0xc" (cast_expression "(long)(fVar23 + fVar32)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar23 + fVar32)" ( (binary_expression "fVar23 + fVar32" identifier + identifier) ))) * number_literal)) )))) ;) (expression_statement "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;" (assignment_expression "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400" (pointer_expression "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4)" * (cast_expression "(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4)" ( (binary_expression "lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4" identifier + (binary_expression "*(long *)(*(long *)(local_2060 + 0x360) + 8) * 4" (pointer_expression "*(long *)(*(long *)(local_2060 + 0x360) + 8)" * (cast_expression "(long *)(*(long *)(local_2060 + 0x360) + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(local_2060 + 0x360) + 8)" ( (binary_expression "*(long *)(local_2060 + 0x360) + 8" (pointer_expression "*(long *)(local_2060 + 0x360)" * (cast_expression "(long *)(local_2060 + 0x360)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2060 + 0x360)" ( (binary_expression "local_2060 + 0x360" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (binary_expression "((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400" (parenthesized_expression "((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2)" ( (binary_expression "(fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2" (binary_expression "(fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2)" (parenthesized_expression "(fVar26 - fVar23)" ( (binary_expression "fVar26 - fVar23" identifier - identifier) )) * (parenthesized_expression "(*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2)" ( (binary_expression "*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2" (pointer_expression "*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc)" * (cast_expression "(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + (long)(fVar32 + fVar33) * 0xc)" ( (binary_expression "(long)__s + (long)(fVar32 + fVar33) * 0xc" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(long)(fVar32 + fVar33) * 0xc" (cast_expression "(long)(fVar32 + fVar33)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar32 + fVar33)" ( (binary_expression "fVar32 + fVar33" identifier + identifier) ))) * number_literal)) )))) - (pointer_expression "*pfVar2" * identifier)) ))) + (pointer_expression "*pfVar2" * identifier)) )) * identifier)) ;) (expression_statement "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;" (assignment_expression "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4" (pointer_expression "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4)" * (cast_expression "(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4)" ( (binary_expression "lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4" identifier + (binary_expression "*(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4" (pointer_expression "*(long *)(*(long *)(local_2060 + 0x360) + 0x18)" * (cast_expression "(long *)(*(long *)(local_2060 + 0x360) + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(local_2060 + 0x360) + 0x18)" ( (binary_expression "*(long *)(local_2060 + 0x360) + 0x18" (pointer_expression "*(long *)(local_2060 + 0x360)" * (cast_expression "(long *)(local_2060 + 0x360)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2060 + 0x360)" ( (binary_expression "local_2060 + 0x360" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (binary_expression "((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4" (parenthesized_expression "((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1])" ( (binary_expression "(fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]" (binary_expression "(fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1])" (parenthesized_expression "(fVar24 - fVar29)" ( (binary_expression "fVar24 - fVar29" identifier - identifier) )) * (parenthesized_expression "(*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1])" ( (binary_expression "*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]" (pointer_expression "*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4)" * (cast_expression "(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4)" ( (binary_expression "(long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4" (binary_expression "(long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc" (cast_expression "(long)(fVar28 + fVar27 * fVar31 + fVar23)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar28 + fVar27 * fVar31 + fVar23)" ( (binary_expression "fVar28 + fVar27 * fVar31 + fVar23" (binary_expression "fVar28 + fVar27 * fVar31" identifier + (binary_expression "fVar27 * fVar31" identifier * identifier)) + identifier) ))) * number_literal)) + number_literal) )))) - (subscript_expression "pfVar2[1]" identifier [ number_literal ])) ))) + (subscript_expression "pfVar2[1]" identifier [ number_literal ])) )) * identifier)) ;) (expression_statement "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;" (assignment_expression "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4" (pointer_expression "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4)" * (cast_expression "(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4)" ( (binary_expression "lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4" identifier + (binary_expression "*(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4" (pointer_expression "*(long *)(*(long *)(local_2060 + 0x360) + 0x28)" * (cast_expression "(long *)(*(long *)(local_2060 + 0x360) + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(local_2060 + 0x360) + 0x28)" ( (binary_expression "*(long *)(local_2060 + 0x360) + 0x28" (pointer_expression "*(long *)(local_2060 + 0x360)" * (cast_expression "(long *)(local_2060 + 0x360)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2060 + 0x360)" ( (binary_expression "local_2060 + 0x360" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (binary_expression "((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4" (parenthesized_expression "((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2])" ( (binary_expression "(fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]" (binary_expression "(fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2])" (parenthesized_expression "(fVar21 - fVar17)" ( (binary_expression "fVar21 - fVar17" identifier - identifier) )) * (parenthesized_expression "(*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2])" ( (binary_expression "*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]" (pointer_expression "*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8)" * (cast_expression "(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8)" ( (binary_expression "(long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8" (binary_expression "(long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc" (cast_expression "(long)__s" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc" (cast_expression "(long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)" ( (binary_expression "fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31" (binary_expression "fVar23 + fVar29 * fVar31" identifier + (binary_expression "fVar29 * fVar31" identifier * identifier)) + (binary_expression "fVar31 * auVar20._0_4_ * fVar31" (binary_expression "fVar31 * auVar20._0_4_" identifier * (field_expression "auVar20._0_4_" identifier . field_identifier)) * identifier)) ))) * number_literal)) + number_literal) )))) - (subscript_expression "pfVar2[2]" identifier [ number_literal ])) ))) + (subscript_expression "pfVar2[2]" identifier [ number_literal ])) )) * identifier)) ;) (expression_statement "lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;" (assignment_expression "lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4" identifier = (binary_expression "lVar15 + *(long *)(local_2060 + 0x340) * 4" identifier + (binary_expression "*(long *)(local_2060 + 0x340) * 4" (pointer_expression "*(long *)(local_2060 + 0x340)" * (cast_expression "(long *)(local_2060 + 0x340)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2060 + 0x340)" ( (binary_expression "local_2060 + 0x340" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar11 != uVar16)" ( (binary_expression "uVar11 != uVar16" identifier != identifier) )) ;) (expression_statement "iVar7 = SyncAuthenticPixels(local_2060,param_2);" (assignment_expression "iVar7 = SyncAuthenticPixels(local_2060,param_2)" identifier = (call_expression "SyncAuthenticPixels(local_2060,param_2)" identifier (argument_list "(local_2060,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar7 = iVar6;\n              }" { (expression_statement "iVar7 = iVar6;" (assignment_expression "iVar7 = iVar6" identifier = identifier) ;) })) }))) })) (expression_statement "iVar6 = iVar7;" (assignment_expression "iVar6 = iVar7" identifier = identifier) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar14 != uVar16)" ( (binary_expression "uVar14 != uVar16" identifier != identifier) )) ;) })) (expression_statement "local_20a8 = local_20a8 + 1;" (assignment_expression "local_20a8 = local_20a8 + 1" identifier = (binary_expression "local_20a8 + 1" identifier + number_literal)) ;) (expression_statement "local_2070 = local_2070 + local_2080;" (assignment_expression "local_2070 = local_2070 + local_2080" identifier = (binary_expression "local_2070 + local_2080" identifier + identifier)) ;) }) while (parenthesized_expression "(local_20a8 != uVar16)" ( (binary_expression "local_20a8 != uVar16" identifier != identifier) )) ;) (expression_statement "RelinquishVirtualMemory(local_20a0);" (call_expression "RelinquishVirtualMemory(local_20a0)" identifier (argument_list "(local_20a0)" ( identifier ))) ;) (expression_statement "CloseBlob(local_2060);" (call_expression "CloseBlob(local_2060)" identifier (argument_list "(local_2060)" ( identifier ))) ;) (if_statement "if (iVar6 == 0) {\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }" { (expression_statement "lVar15 = DestroyImageList(local_2060);" (assignment_expression "lVar15 = DestroyImageList(local_2060)" identifier = (call_expression "DestroyImageList(local_2060)" identifier (argument_list "(local_2060)" ( identifier )))) ;) (goto_statement "goto LAB_0033a403;" goto statement_identifier ;) })) }))) (if_statement "if (0 < *(long *)(param_1 + 0x38)) {\n    lVar15 = 0;\n    do {\n      uVar10 = CloneImage(local_2060,0,0,1,param_2);\n      AppendImageToList(&local_2060,uVar10);\n      lVar15 = lVar15 + 1;\n    } while (lVar15 < *(long *)(param_1 + 0x38));\n  }" if (parenthesized_expression "(0 < *(long *)(param_1 + 0x38))" ( (binary_expression "0 < *(long *)(param_1 + 0x38)" number_literal < (pointer_expression "*(long *)(param_1 + 0x38)" * (cast_expression "(long *)(param_1 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\n    lVar15 = 0;\n    do {\n      uVar10 = CloneImage(local_2060,0,0,1,param_2);\n      AppendImageToList(&local_2060,uVar10);\n      lVar15 = lVar15 + 1;\n    } while (lVar15 < *(long *)(param_1 + 0x38));\n  }" { (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar10 = CloneImage(local_2060,0,0,1,param_2);\n      AppendImageToList(&local_2060,uVar10);\n      lVar15 = lVar15 + 1;\n    } while (lVar15 < *(long *)(param_1 + 0x38));" do (compound_statement "{\n      uVar10 = CloneImage(local_2060,0,0,1,param_2);\n      AppendImageToList(&local_2060,uVar10);\n      lVar15 = lVar15 + 1;\n    }" { (expression_statement "uVar10 = CloneImage(local_2060,0,0,1,param_2);" (assignment_expression "uVar10 = CloneImage(local_2060,0,0,1,param_2)" identifier = (call_expression "CloneImage(local_2060,0,0,1,param_2)" identifier (argument_list "(local_2060,0,0,1,param_2)" ( identifier , number_literal , number_literal , number_literal , identifier )))) ;) (expression_statement "AppendImageToList(&local_2060,uVar10);" (call_expression "AppendImageToList(&local_2060,uVar10)" identifier (argument_list "(&local_2060,uVar10)" ( (pointer_expression "&local_2060" & identifier) , identifier ))) ;) (expression_statement "lVar15 = lVar15 + 1;" (assignment_expression "lVar15 = lVar15 + 1" identifier = (binary_expression "lVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar15 < *(long *)(param_1 + 0x38))" ( (binary_expression "lVar15 < *(long *)(param_1 + 0x38)" identifier < (pointer_expression "*(long *)(param_1 + 0x38)" * (cast_expression "(long *)(param_1 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) )) ;) })) (expression_statement "lVar15 = GetFirstImageInList(local_2060);" (assignment_expression "lVar15 = GetFirstImageInList(local_2060)" identifier = (call_expression "GetFirstImageInList(local_2060)" identifier (argument_list "(local_2060)" ( identifier )))) ;) (labeled_statement "LAB_0033a403:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return lVar15;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return lVar15;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return lVar15;\n  }" { (return_statement "return lVar15;" return identifier ;) }))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition (sized_type_specifier long) (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (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 (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 (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (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 (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (string_literal " string_content ") , LIT , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) ))) )) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) , (binary_expression IDENT == LIT)) ))) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & IDENT) ))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) < IDENT) )))) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) + (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ))) | (binary_expression (unary_expression ~ IDENT) & (cast_expression ( (type_descriptor TYPE) ) IDENT))) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) ^ LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT * IDENT) , (binary_expression IDENT * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (binary_expression (binary_expression IDENT * LIT) * IDENT) * IDENT) ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") , LIT , LIT , (string_literal " string_content ") , (string_literal " string_content escape_sequence ") , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") , LIT , LIT , (string_literal " string_content ") , (string_literal " string_content escape_sequence ") , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT - IDENT) == LIT) || (binary_expression IDENT < IDENT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) }) while (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) - LIT) )))) )) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") , LIT , LIT , (string_literal " string_content ") , (string_literal " string_content escape_sequence ") , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_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 = (call_expression IDENT (argument_list ( IDENT , (binary_expression (parenthesized_expression ( (binary_expression IDENT % IDENT) )) * IDENT) , (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT / IDENT) )) % IDENT) + IDENT) , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) * IDENT) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & IDENT) ))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ))) | (binary_expression (unary_expression ~ IDENT) & (cast_expression ( (type_descriptor TYPE) ) IDENT))) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) ^ LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) * IDENT) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & IDENT) ))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ))) | (binary_expression (unary_expression ~ IDENT) & (cast_expression ( (type_descriptor TYPE) ) IDENT))) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) ^ LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & IDENT) ))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (unary_expression ~ IDENT) & (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )))) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ))) ))) | IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) ^ LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))) = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) * LIT)) )))) - (pointer_expression * IDENT)) ))) + (pointer_expression * IDENT)) )) * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))) = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * IDENT)) + IDENT) ))) * LIT)) + LIT) )))) - (subscript_expression IDENT [ LIT ])) ))) + (subscript_expression IDENT [ LIT ])) )) * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))) = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * IDENT)) + (binary_expression (binary_expression IDENT * (field_expression IDENT . field_identifier)) * IDENT)) ))) * LIT)) + LIT) )))) - (subscript_expression IDENT [ LIT ])) ))) + (subscript_expression IDENT [ LIT ])) )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (goto_statement goto statement_identifier ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "long FUN_00339e3c(long param_1,long param_2)\n\n{\n  ulong uVar1;\n  float *pfVar2;\n  undefined4 uVar3;\n  float fVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  long lVar9;\n  undefined8 uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  void *__s;\n  ulong uVar14;\n  long lVar15;\n  ulong uVar16;\n  long in_FS_OFFSET;\n  float fVar17;\n  double dVar18;\n  double dVar19;\n  undefined1 auVar20 [16];\n  float fVar21;\n  double dVar22;\n  float fVar23;\n  float fVar24;\n  double dVar25;\n  float fVar26;\n  float fVar27;\n  float fVar28;\n  float fVar29;\n  undefined1 auVar30 [16];\n  float fVar31;\n  float fVar32;\n  float fVar33;\n  double dVar34;\n  double dVar35;\n  double dVar36;\n  ulong local_20a8;\n  long local_20a0;\n  ulong local_2080;\n  long local_2070;\n  long local_2060;\n  char *local_2058;\n  char *local_2050;\n  char local_2048 [4096];\n  char local_1048 [4104];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");\n  }\n  if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");\n  }\n  if (*(int *)(param_1 + 0x3270) != 0) {\n    LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");\n  }\n  if (*(long *)(param_2 + 0x30) != 0xabacadab) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );\n  }\n  local_2060 = AcquireImage(param_1,param_2);\n  iVar6 = OpenBlob(param_1,local_2060,2,param_2);\n  if (iVar6 == 0) {\n    DestroyImageList(local_2060);\n    lVar15 = 0;\n    goto LAB_0033a403;\n  }\n  pcVar8 = (char *)AcquireString(&DAT_00473ecb);\n  *pcVar8 = '\0';\n  lVar15 = 0;\n  uVar13 = 0;\n  local_20a0 = 0;\n  __s = (void *)0x0;\nLAB_0033a25a:\n  do {\n    do {\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));\n    iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n    if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }\n    iVar6 = LocaleCompare(local_2048,"TITLE ");\n    if (iVar6 == 0) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }\n    if (uVar13 != 0) {\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }\n  } while (0xd < (byte)(*pcVar8 - 0x2cU));\nLAB_0033a378:\n  DestroyString(pcVar8);\n  if (uVar13 == 0) {\n    if (local_20a0 != 0) {\n      RelinquishVirtualMemory(local_20a0);\n    }\n    ThrowMagickException\n              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270);\n    lVar15 = local_2060;\n    if (local_2060 != 0) {\n      CloseBlob(local_2060);\n      DestroyImageList(local_2060);\n      lVar15 = 0;\n    }\n    goto LAB_0033a403;\n  }\n  local_2080 = *(ulong *)(param_1 + 0x38);\n  if (local_2080 - 2 < 0xff) {\n    uVar16 = local_2080 * local_2080;\n    lVar15 = local_2080 * uVar16;\n    *(long *)(local_2060 + 0x20) = lVar15;\n    *(long *)(local_2060 + 0x28) = lVar15;\n    iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2);\n    if (iVar6 == 0) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n    if (0 < (long)uVar16) goto LAB_0033ab1a;\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n  }\n  else {\n    *(undefined8 *)(local_2060 + 0x20) = 0x200;\n    *(undefined8 *)(local_2060 + 0x28) = 0x200;\n    iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);\n    if (iVar6 == 0) goto LAB_0033a49e;\n    uVar16 = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != uVar16);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n    if (iVar6 == 0) {\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n  }\n  if (0 < *(long *)(param_1 + 0x38)) {\n    lVar15 = 0;\n    do {\n      uVar10 = CloneImage(local_2060,0,0,1,param_2);\n      AppendImageToList(&local_2060,uVar10);\n      lVar15 = lVar15 + 1;\n    } while (lVar15 < *(long *)(param_1 + 0x38));\n  }\n  lVar15 = GetFirstImageInList(local_2060);\nLAB_0033a403:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return lVar15;\n  }\n                    \n  __stack_chk_fail();\n}" (sized_type_specifier "long" (long "long")) (function_declarator "FUN_00339e3c(long param_1,long param_2)" (identifier "FUN_00339e3c") (parameter_list "(long param_1,long param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) () ")"))) (compound_statement "{\n  ulong uVar1;\n  float *pfVar2;\n  undefined4 uVar3;\n  float fVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  char *pcVar8;\n  long lVar9;\n  undefined8 uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  void *__s;\n  ulong uVar14;\n  long lVar15;\n  ulong uVar16;\n  long in_FS_OFFSET;\n  float fVar17;\n  double dVar18;\n  double dVar19;\n  undefined1 auVar20 [16];\n  float fVar21;\n  double dVar22;\n  float fVar23;\n  float fVar24;\n  double dVar25;\n  float fVar26;\n  float fVar27;\n  float fVar28;\n  float fVar29;\n  undefined1 auVar30 [16];\n  float fVar31;\n  float fVar32;\n  float fVar33;\n  double dVar34;\n  double dVar35;\n  double dVar36;\n  ulong local_20a8;\n  long local_20a0;\n  ulong local_2080;\n  long local_2070;\n  long local_2060;\n  char *local_2058;\n  char *local_2050;\n  char local_2048 [4096];\n  char local_1048 [4104];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");\n  }\n  if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");\n  }\n  if (*(int *)(param_1 + 0x3270) != 0) {\n    LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");\n  }\n  if (*(long *)(param_2 + 0x30) != 0xabacadab) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );\n  }\n  local_2060 = AcquireImage(param_1,param_2);\n  iVar6 = OpenBlob(param_1,local_2060,2,param_2);\n  if (iVar6 == 0) {\n    DestroyImageList(local_2060);\n    lVar15 = 0;\n    goto LAB_0033a403;\n  }\n  pcVar8 = (char *)AcquireString(&DAT_00473ecb);\n  *pcVar8 = '\0';\n  lVar15 = 0;\n  uVar13 = 0;\n  local_20a0 = 0;\n  __s = (void *)0x0;\nLAB_0033a25a:\n  do {\n    do {\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));\n    iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n    if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }\n    iVar6 = LocaleCompare(local_2048,"TITLE ");\n    if (iVar6 == 0) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }\n    if (uVar13 != 0) {\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }\n  } while (0xd < (byte)(*pcVar8 - 0x2cU));\nLAB_0033a378:\n  DestroyString(pcVar8);\n  if (uVar13 == 0) {\n    if (local_20a0 != 0) {\n      RelinquishVirtualMemory(local_20a0);\n    }\n    ThrowMagickException\n              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270);\n    lVar15 = local_2060;\n    if (local_2060 != 0) {\n      CloseBlob(local_2060);\n      DestroyImageList(local_2060);\n      lVar15 = 0;\n    }\n    goto LAB_0033a403;\n  }\n  local_2080 = *(ulong *)(param_1 + 0x38);\n  if (local_2080 - 2 < 0xff) {\n    uVar16 = local_2080 * local_2080;\n    lVar15 = local_2080 * uVar16;\n    *(long *)(local_2060 + 0x20) = lVar15;\n    *(long *)(local_2060 + 0x28) = lVar15;\n    iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2);\n    if (iVar6 == 0) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n    if (0 < (long)uVar16) goto LAB_0033ab1a;\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n  }\n  else {\n    *(undefined8 *)(local_2060 + 0x20) = 0x200;\n    *(undefined8 *)(local_2060 + 0x28) = 0x200;\n    iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);\n    if (iVar6 == 0) goto LAB_0033a49e;\n    uVar16 = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != uVar16);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n    if (iVar6 == 0) {\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n  }\n  if (0 < *(long *)(param_1 + 0x38)) {\n    lVar15 = 0;\n    do {\n      uVar10 = CloneImage(local_2060,0,0,1,param_2);\n      AppendImageToList(&local_2060,uVar10);\n      lVar15 = lVar15 + 1;\n    } while (lVar15 < *(long *)(param_1 + 0x38));\n  }\n  lVar15 = GetFirstImageInList(local_2060);\nLAB_0033a403:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return lVar15;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "ulong uVar1;" (type_identifier "ulong") (identifier "uVar1") (; ";")) (declaration "float *pfVar2;" (primitive_type "float") (pointer_declarator "*pfVar2" (* "*") (identifier "pfVar2")) (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "float fVar4;" (primitive_type "float") (identifier "fVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "undefined8 uVar10;" (type_identifier "undefined8") (identifier "uVar10") (; ";")) (declaration "ulong uVar11;" (type_identifier "ulong") (identifier "uVar11") (; ";")) (declaration "ulong uVar12;" (type_identifier "ulong") (identifier "uVar12") (; ";")) (declaration "ulong uVar13;" (type_identifier "ulong") (identifier "uVar13") (; ";")) (declaration "void *__s;" (primitive_type "void") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "ulong uVar14;" (type_identifier "ulong") (identifier "uVar14") (; ";")) (declaration "long lVar15;" (sized_type_specifier "long" (long "long")) (identifier "lVar15") (; ";")) (declaration "ulong uVar16;" (type_identifier "ulong") (identifier "uVar16") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "float fVar17;" (primitive_type "float") (identifier "fVar17") (; ";")) (declaration "double dVar18;" (primitive_type "double") (identifier "dVar18") (; ";")) (declaration "double dVar19;" (primitive_type "double") (identifier "dVar19") (; ";")) (declaration "undefined1 auVar20 [16];" (type_identifier "undefined1") (array_declarator "auVar20 [16]" (identifier "auVar20") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "float fVar21;" (primitive_type "float") (identifier "fVar21") (; ";")) (declaration "double dVar22;" (primitive_type "double") (identifier "dVar22") (; ";")) (declaration "float fVar23;" (primitive_type "float") (identifier "fVar23") (; ";")) (declaration "float fVar24;" (primitive_type "float") (identifier "fVar24") (; ";")) (declaration "double dVar25;" (primitive_type "double") (identifier "dVar25") (; ";")) (declaration "float fVar26;" (primitive_type "float") (identifier "fVar26") (; ";")) (declaration "float fVar27;" (primitive_type "float") (identifier "fVar27") (; ";")) (declaration "float fVar28;" (primitive_type "float") (identifier "fVar28") (; ";")) (declaration "float fVar29;" (primitive_type "float") (identifier "fVar29") (; ";")) (declaration "undefined1 auVar30 [16];" (type_identifier "undefined1") (array_declarator "auVar30 [16]" (identifier "auVar30") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "float fVar31;" (primitive_type "float") (identifier "fVar31") (; ";")) (declaration "float fVar32;" (primitive_type "float") (identifier "fVar32") (; ";")) (declaration "float fVar33;" (primitive_type "float") (identifier "fVar33") (; ";")) (declaration "double dVar34;" (primitive_type "double") (identifier "dVar34") (; ";")) (declaration "double dVar35;" (primitive_type "double") (identifier "dVar35") (; ";")) (declaration "double dVar36;" (primitive_type "double") (identifier "dVar36") (; ";")) (declaration "ulong local_20a8;" (type_identifier "ulong") (identifier "local_20a8") (; ";")) (declaration "long local_20a0;" (sized_type_specifier "long" (long "long")) (identifier "local_20a0") (; ";")) (declaration "ulong local_2080;" (type_identifier "ulong") (identifier "local_2080") (; ";")) (declaration "long local_2070;" (sized_type_specifier "long" (long "long")) (identifier "local_2070") (; ";")) (declaration "long local_2060;" (sized_type_specifier "long" (long "long")) (identifier "local_2060") (; ";")) (declaration "char *local_2058;" (primitive_type "char") (pointer_declarator "*local_2058" (* "*") (identifier "local_2058")) (; ";")) (declaration "char *local_2050;" (primitive_type "char") (pointer_declarator "*local_2050" (* "*") (identifier "local_2050")) (; ";")) (declaration "char local_2048 [4096];" (primitive_type "char") (array_declarator "local_2048 [4096]" (identifier "local_2048") ([ "[") (number_literal "4096") (] "]")) (; ";")) (declaration "char local_1048 [4104];" (primitive_type "char") (array_declarator "local_1048 [4104]" (identifier "local_1048") ([ "[") (number_literal "4104") (] "]")) (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");\n  }" ({ "{") (expression_statement "__assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");" (call_expression "__assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage")" (identifier "__assert_fail") (argument_list "("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage")" (( "(") (string_literal ""image_info != (const ImageInfo *) NULL"" (" """) (string_content "image_info != (const ImageInfo *) NULL") (" """)) (, ",") (string_literal ""coders/cube.c"" (" """) (string_content "coders/cube.c") (" """)) (, ",") (number_literal "0x8e") (, ",") (string_literal ""ReadCUBEImage"" (" """) (string_content "ReadCUBEImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(long *)(param_1 + 0x3278) != 0xabacadab) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");\n  }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x3278) != 0xabacadab)" (( "(") (binary_expression "*(long *)(param_1 + 0x3278) != 0xabacadab" (pointer_expression "*(long *)(param_1 + 0x3278)" (* "*") (cast_expression "(long *)(param_1 + 0x3278)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3278)" (( "(") (binary_expression "param_1 + 0x3278" (identifier "param_1") (+ "+") (number_literal "0x3278")) () ")")))) (!= "!=") (number_literal "0xabacadab")) () ")")) (compound_statement "{\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");\n  }" ({ "{") (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage")" (identifier "__assert_fail") (argument_list "("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,\n                  "ReadCUBEImage")" (( "(") (string_literal ""image_info->signature == MagickCoreSignature"" (" """) (string_content "image_info->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""coders/cube.c"" (" """) (string_content "coders/cube.c") (" """)) (, ",") (number_literal "0x8f") (, ",") (string_literal ""ReadCUBEImage"" (" """) (string_content "ReadCUBEImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x3270) != 0) {\n    LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x3270) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x3270) != 0" (pointer_expression "*(int *)(param_1 + 0x3270)" (* "*") (cast_expression "(int *)(param_1 + 0x3270)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3270)" (( "(") (binary_expression "param_1 + 0x3270" (identifier "param_1") (+ "+") (number_literal "0x3270")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270);\n  }" ({ "{") (expression_statement "LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270);" (call_expression "LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270)" (identifier "LogMagickEvent") (argument_list "(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270)" (( "(") (number_literal "0x8000") (, ",") (string_literal ""coders/cube.c"" (" """) (string_content "coders/cube.c") (" """)) (, ",") (string_literal ""ReadCUBEImage"" (" """) (string_content "ReadCUBEImage") (" """)) (, ",") (number_literal "0x91") (, ",") (pointer_expression "&DAT_0041fe36" (& "&") (identifier "DAT_0041fe36")) (, ",") (binary_expression "param_1 + 0x2270" (identifier "param_1") (+ "+") (number_literal "0x2270")) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");\n  }" ({ "{") (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage")" (identifier "__assert_fail") (argument_list "("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage")" (( "(") (string_literal ""exception != (ExceptionInfo *) NULL"" (" """) (string_content "exception != (ExceptionInfo *) NULL") (" """)) (, ",") (string_literal ""coders/cube.c"" (" """) (string_content "coders/cube.c") (" """)) (, ",") (number_literal "0x93") (, ",") (string_literal ""ReadCUBEImage"" (" """) (string_content "ReadCUBEImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(long *)(param_2 + 0x30) != 0xabacadab) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );\n  }" (if "if") (parenthesized_expression "(*(long *)(param_2 + 0x30) != 0xabacadab)" (( "(") (binary_expression "*(long *)(param_2 + 0x30) != 0xabacadab" (pointer_expression "*(long *)(param_2 + 0x30)" (* "*") (cast_expression "(long *)(param_2 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")")))) (!= "!=") (number_literal "0xabacadab")) () ")")) (compound_statement "{\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );\n  }" ({ "{") (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 );" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 )" (identifier "__assert_fail") (argument_list "("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"\n                 )" (( "(") (string_literal ""exception->signature == MagickCoreSignature"" (" """) (string_content "exception->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""coders/cube.c"" (" """) (string_content "coders/cube.c") (" """)) (, ",") (number_literal "0x94") (, ",") (string_literal ""ReadCUBEImage"" (" """) (string_content "ReadCUBEImage") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "local_2060 = AcquireImage(param_1,param_2);" (assignment_expression "local_2060 = AcquireImage(param_1,param_2)" (identifier "local_2060") (= "=") (call_expression "AcquireImage(param_1,param_2)" (identifier "AcquireImage") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "iVar6 = OpenBlob(param_1,local_2060,2,param_2);" (assignment_expression "iVar6 = OpenBlob(param_1,local_2060,2,param_2)" (identifier "iVar6") (= "=") (call_expression "OpenBlob(param_1,local_2060,2,param_2)" (identifier "OpenBlob") (argument_list "(param_1,local_2060,2,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "local_2060") (, ",") (number_literal "2") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n    DestroyImageList(local_2060);\n    lVar15 = 0;\n    goto LAB_0033a403;\n  }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    DestroyImageList(local_2060);\n    lVar15 = 0;\n    goto LAB_0033a403;\n  }" ({ "{") (expression_statement "DestroyImageList(local_2060);" (call_expression "DestroyImageList(local_2060)" (identifier "DestroyImageList") (argument_list "(local_2060)" (( "(") (identifier "local_2060") () ")"))) (; ";")) (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" (identifier "lVar15") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0033a403;" (goto "goto") (statement_identifier "LAB_0033a403") (; ";")) (} "}"))) (expression_statement "pcVar8 = (char *)AcquireString(&DAT_00473ecb);" (assignment_expression "pcVar8 = (char *)AcquireString(&DAT_00473ecb)" (identifier "pcVar8") (= "=") (cast_expression "(char *)AcquireString(&DAT_00473ecb)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "AcquireString(&DAT_00473ecb)" (identifier "AcquireString") (argument_list "(&DAT_00473ecb)" (( "(") (pointer_expression "&DAT_00473ecb" (& "&") (identifier "DAT_00473ecb")) () ")"))))) (; ";")) (expression_statement "*pcVar8 = '\0';" (assignment_expression "*pcVar8 = '\0'" (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" (identifier "lVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_20a0 = 0;" (assignment_expression "local_20a0 = 0" (identifier "local_20a0") (= "=") (number_literal "0")) (; ";")) (expression_statement "__s = (void *)0x0;" (assignment_expression "__s = (void *)0x0" (identifier "__s") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0033a25a:\n  do {\n    do {\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));\n    iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n    if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }\n    iVar6 = LocaleCompare(local_2048,"TITLE ");\n    if (iVar6 == 0) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }\n    if (uVar13 != 0) {\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }\n  } while (0xd < (byte)(*pcVar8 - 0x2cU));" (statement_identifier "LAB_0033a25a") (: ":") (do_statement "do {\n    do {\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));\n    iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n    if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }\n    iVar6 = LocaleCompare(local_2048,"TITLE ");\n    if (iVar6 == 0) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }\n    if (uVar13 != 0) {\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }\n  } while (0xd < (byte)(*pcVar8 - 0x2cU));" (do "do") (compound_statement "{\n    do {\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));\n    iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n    if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }\n    iVar6 = LocaleCompare(local_2048,"TITLE ");\n    if (iVar6 == 0) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }\n    if (uVar13 != 0) {\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }\n  }" ({ "{") (do_statement "do {\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));" (do "do") (compound_statement "{\n      lVar9 = ReadBlobString(local_2060,pcVar8);\n      if (lVar9 == 0) goto LAB_0033a378;\n      local_2058 = pcVar8;\n      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);\n    }" ({ "{") (expression_statement "lVar9 = ReadBlobString(local_2060,pcVar8);" (assignment_expression "lVar9 = ReadBlobString(local_2060,pcVar8)" (identifier "lVar9") (= "=") (call_expression "ReadBlobString(local_2060,pcVar8)" (identifier "ReadBlobString") (argument_list "(local_2060,pcVar8)" (( "(") (identifier "local_2060") (, ",") (identifier "pcVar8") () ")")))) (; ";")) (if_statement "if (lVar9 == 0) goto LAB_0033a378;" (if "if") (parenthesized_expression "(lVar9 == 0)" (( "(") (binary_expression "lVar9 == 0" (identifier "lVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0033a378;" (goto "goto") (statement_identifier "LAB_0033a378") (; ";"))) (expression_statement "local_2058 = pcVar8;" (assignment_expression "local_2058 = pcVar8" (identifier "local_2058") (= "=") (identifier "pcVar8")) (; ";")) (expression_statement "GetNextToken(pcVar8,&local_2058,0x1000,local_2048);" (call_expression "GetNextToken(pcVar8,&local_2058,0x1000,local_2048)" (identifier "GetNextToken") (argument_list "(pcVar8,&local_2058,0x1000,local_2048)" (( "(") (identifier "pcVar8") (, ",") (pointer_expression "&local_2058" (& "&") (identifier "local_2058")) (, ",") (number_literal "0x1000") (, ",") (identifier "local_2048") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((local_2048[0] == '#') || (local_2048[0] == '\0'))" (( "(") (binary_expression "(local_2048[0] == '#') || (local_2048[0] == '\0')" (parenthesized_expression "(local_2048[0] == '#')" (( "(") (binary_expression "local_2048[0] == '#'" (subscript_expression "local_2048[0]" (identifier "local_2048") ([ "[") (number_literal "0") (] "]")) (== "==") (char_literal "'#'" (' "'") (character "#") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(local_2048[0] == '\0')" (( "(") (binary_expression "local_2048[0] == '\0'" (subscript_expression "local_2048[0]" (identifier "local_2048") ([ "[") (number_literal "0") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (; ";")) (expression_statement "iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");" (assignment_expression "iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE")" (identifier "iVar6") (= "=") (call_expression "LocaleCompare(local_2048,"LUT_1D_SIZE")" (identifier "LocaleCompare") (argument_list "(local_2048,"LUT_1D_SIZE")" (( "(") (identifier "local_2048") (, ",") (string_literal ""LUT_1D_SIZE"" (" """) (string_content "LUT_1D_SIZE") (" """)) () ")")))) (; ";")) (if_statement "if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }" (if "if") (parenthesized_expression "(((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0))" (( "(") (binary_expression "((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&\n       (local_20a0 == 0)" (parenthesized_expression "((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0))" (( "(") (binary_expression "(iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)" (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)" (( "(") (comma_expression "iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0" (assignment_expression "iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE")" (identifier "iVar6") (= "=") (call_expression "LocaleCompare(local_2048,"LUT_3D_SIZE")" (identifier "LocaleCompare") (argument_list "(local_2048,"LUT_3D_SIZE")" (( "(") (identifier "local_2048") (, ",") (string_literal ""LUT_3D_SIZE"" (" """) (string_content "LUT_3D_SIZE") (" """)) () ")")))) (, ",") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_20a0 == 0)" (( "(") (binary_expression "local_20a0 == 0" (identifier "local_20a0") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      uVar13 = strtol(local_1048,(char **)0x0,10);\n      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");\n      if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }\n      if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      lVar15 = 0;\n      goto LAB_0033a403;\n    }" ({ "{") (expression_statement "GetNextToken(local_2058,&local_2058,0x1000,local_1048);" (call_expression "GetNextToken(local_2058,&local_2058,0x1000,local_1048)" (identifier "GetNextToken") (argument_list "(local_2058,&local_2058,0x1000,local_1048)" (( "(") (identifier "local_2058") (, ",") (pointer_expression "&local_2058" (& "&") (identifier "local_2058")) (, ",") (number_literal "0x1000") (, ",") (identifier "local_1048") () ")"))) (; ";")) (expression_statement "uVar13 = strtol(local_1048,(char **)0x0,10);" (assignment_expression "uVar13 = strtol(local_1048,(char **)0x0,10)" (identifier "uVar13") (= "=") (call_expression "strtol(local_1048,(char **)0x0,10)" (identifier "strtol") (argument_list "(local_1048,(char **)0x0,10)" (( "(") (identifier "local_1048") (, ",") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")) (, ",") (number_literal "10") () ")")))) (; ";")) (expression_statement "iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");" (assignment_expression "iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE")" (identifier "iVar6") (= "=") (call_expression "LocaleCompare(local_2048,"LUT_1D_SIZE")" (identifier "LocaleCompare") (argument_list "(local_2048,"LUT_1D_SIZE")" (( "(") (identifier "local_2048") (, ",") (string_literal ""LUT_1D_SIZE"" (" """) (string_content "LUT_1D_SIZE") (" """)) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        dVar18 = pow((double)uVar13,DAT_00406790);\n        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }\n        if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }\n      }" ({ "{") (expression_statement "dVar18 = pow((double)uVar13,DAT_00406790);" (assignment_expression "dVar18 = pow((double)uVar13,DAT_00406790)" (identifier "dVar18") (= "=") (call_expression "pow((double)uVar13,DAT_00406790)" (identifier "pow") (argument_list "((double)uVar13,DAT_00406790)" (( "(") (cast_expression "(double)uVar13" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "uVar13")) (, ",") (identifier "DAT_00406790") () ")")))) (; ";")) (if_statement "if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }" (if "if") (parenthesized_expression "((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30)" (( "(") (binary_expression "(double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30" (cast_expression "(double)((ulong)dVar18 & DAT_003f9c70)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "((ulong)dVar18 & DAT_003f9c70)" (( "(") (binary_expression "(ulong)dVar18 & DAT_003f9c70" (cast_expression "(ulong)dVar18" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "dVar18")) (& "&") (identifier "DAT_003f9c70")) () ")"))) (< "<") (identifier "DAT_003f9c30")) () ")")) (compound_statement "{\n          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);\n        }" ({ "{") (expression_statement "dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18);" (assignment_expression "dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18)" (identifier "dVar18") (= "=") (cast_expression "(double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18)" (( "(") (binary_expression "(ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |\n                           ~DAT_003f9c70 & (ulong)dVar18" (call_expression "(ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18)" (( "(") (binary_expression "(double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608) + (double)(long)dVar18" (cast_expression "(double)(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608)" (( "(") (binary_expression "-(ulong)((double)(long)dVar18 < dVar18) &\n                                            (ulong)DAT_003f9608" (unary_expression "-(ulong)((double)(long)dVar18 < dVar18)" (- "-") (call_expression "(ulong)((double)(long)dVar18 < dVar18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((double)(long)dVar18 < dVar18)" (( "(") (binary_expression "(double)(long)dVar18 < dVar18" (cast_expression "(double)(long)dVar18" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(long)dVar18" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "dVar18"))) (< "<") (identifier "dVar18")) () ")")))) (& "&") (cast_expression "(ulong)DAT_003f9608" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "DAT_003f9608"))) () ")"))) (+ "+") (cast_expression "(double)(long)dVar18" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(long)dVar18" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "dVar18")))) () ")"))) (| "|") (binary_expression "~DAT_003f9c70 & (ulong)dVar18" (unary_expression "~DAT_003f9c70" (~ "~") (identifier "DAT_003f9c70")) (& "&") (cast_expression "(ulong)dVar18" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "dVar18")))) () ")")))) (; ";")) (} "}"))) (if_statement "if (DAT_003f9c40 <= dVar18) {\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }\n        else {\n          uVar13 = (ulong)dVar18;\n        }" (if "if") (parenthesized_expression "(DAT_003f9c40 <= dVar18)" (( "(") (binary_expression "DAT_003f9c40 <= dVar18" (identifier "DAT_003f9c40") (<= "<=") (identifier "dVar18")) () ")")) (compound_statement "{\n          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;\n        }" ({ "{") (expression_statement "uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;" (assignment_expression "uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000" (identifier "uVar13") (= "=") (binary_expression "(long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000" (cast_expression "(long)(dVar18 - DAT_003f9c40)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(dVar18 - DAT_003f9c40)" (( "(") (binary_expression "dVar18 - DAT_003f9c40" (identifier "dVar18") (- "-") (identifier "DAT_003f9c40")) () ")"))) (^ "^") (number_literal "0x8000000000000000"))) (; ";")) (} "}")) (else_clause "else {\n          uVar13 = (ulong)dVar18;\n        }" (else "else") (compound_statement "{\n          uVar13 = (ulong)dVar18;\n        }" ({ "{") (expression_statement "uVar13 = (ulong)dVar18;" (assignment_expression "uVar13 = (ulong)dVar18" (identifier "uVar13") (= "=") (cast_expression "(ulong)dVar18" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "dVar18"))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (uVar13 - 2 < 0xff) {\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }\n      else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }" (if "if") (parenthesized_expression "(uVar13 - 2 < 0xff)" (( "(") (binary_expression "uVar13 - 2 < 0xff" (binary_expression "uVar13 - 2" (identifier "uVar13") (- "-") (number_literal "2")) (< "<") (number_literal "0xff")) () ")")) (compound_statement "{\n        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);\n        if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }" ({ "{") (expression_statement "local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);" (assignment_expression "local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc)" (identifier "local_20a0") (= "=") (call_expression "AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc)" (identifier "AcquireVirtualMemory") (argument_list "(uVar13 * uVar13,uVar13 * 0xc)" (( "(") (binary_expression "uVar13 * uVar13" (identifier "uVar13") (* "*") (identifier "uVar13")) (, ",") (binary_expression "uVar13 * 0xc" (identifier "uVar13") (* "*") (number_literal "0xc")) () ")")))) (; ";")) (if_statement "if (local_20a0 != 0) {\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }" (if "if") (parenthesized_expression "(local_20a0 != 0)" (( "(") (binary_expression "local_20a0 != 0" (identifier "local_20a0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          __s = (void *)GetVirtualMemoryBlob(local_20a0);\n          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);\n          goto LAB_0033a25a;\n        }" ({ "{") (expression_statement "__s = (void *)GetVirtualMemoryBlob(local_20a0);" (assignment_expression "__s = (void *)GetVirtualMemoryBlob(local_20a0)" (identifier "__s") (= "=") (cast_expression "(void *)GetVirtualMemoryBlob(local_20a0)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "GetVirtualMemoryBlob(local_20a0)" (identifier "GetVirtualMemoryBlob") (argument_list "(local_20a0)" (( "(") (identifier "local_20a0") () ")"))))) (; ";")) (expression_statement "memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);" (call_expression "memset(__s,0,uVar13 * 0xc * uVar13 * uVar13)" (identifier "memset") (argument_list "(__s,0,uVar13 * 0xc * uVar13 * uVar13)" (( "(") (identifier "__s") (, ",") (number_literal "0") (, ",") (binary_expression "uVar13 * 0xc * uVar13 * uVar13" (binary_expression "uVar13 * 0xc * uVar13" (binary_expression "uVar13 * 0xc" (identifier "uVar13") (* "*") (number_literal "0xc")) (* "*") (identifier "uVar13")) (* "*") (identifier "uVar13")) () ")"))) (; ";")) (goto_statement "goto LAB_0033a25a;" (goto "goto") (statement_identifier "LAB_0033a25a") (; ";")) (} "}"))) (expression_statement "DestroyString(pcVar8);" (call_expression "DestroyString(pcVar8)" (identifier "DestroyString") (argument_list "(pcVar8)" (( "(") (identifier "pcVar8") () ")"))) (; ";")) (expression_statement "ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270);" (call_expression "ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270)" (identifier "ThrowMagickException") (argument_list "(param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"\n                   ,param_1 + 0x2270)" (( "(") (identifier "param_2") (, ",") (string_literal ""coders/cube.c"" (" """) (string_content "coders/cube.c") (" """)) (, ",") (string_literal ""ReadCUBEImage"" (" """) (string_content "ReadCUBEImage") (" """)) (, ",") (number_literal "0xbe") (, ",") (number_literal "400") (, ",") (string_literal ""MemoryAllocationFailed"" (" """) (string_content "MemoryAllocationFailed") (" """)) (, ",") (string_literal ""`%s\'"" (" """) (string_content "`%s") (escape_sequence "\'") (" """)) (, ",") (binary_expression "param_1 + 0x2270" (identifier "param_1") (+ "+") (number_literal "0x2270")) () ")"))) (; ";")) (if_statement "if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }" (if "if") (parenthesized_expression "(local_2060 != 0)" (( "(") (binary_expression "local_2060 != 0" (identifier "local_2060") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }" ({ "{") (expression_statement "CloseBlob();" (call_expression "CloseBlob()" (identifier "CloseBlob") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "DestroyImageList(local_2060);" (call_expression "DestroyImageList(local_2060)" (identifier "DestroyImageList") (argument_list "(local_2060)" (( "(") (identifier "local_2060") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }" (else "else") (compound_statement "{\n        DestroyString(pcVar8);\n        ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);\n        if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }\n      }" ({ "{") (expression_statement "DestroyString(pcVar8);" (call_expression "DestroyString(pcVar8)" (identifier "DestroyString") (argument_list "(pcVar8)" (( "(") (identifier "pcVar8") () ")"))) (; ";")) (expression_statement "ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270);" (call_expression "ThrowMagickException\n                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270)" (identifier "ThrowMagickException") (argument_list "(param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",\n                   param_1 + 0x2270)" (( "(") (identifier "param_2") (, ",") (string_literal ""coders/cube.c"" (" """) (string_content "coders/cube.c") (" """)) (, ",") (string_literal ""ReadCUBEImage"" (" """) (string_content "ReadCUBEImage") (" """)) (, ",") (number_literal "0xb7") (, ",") (number_literal "0x1a9") (, ",") (string_literal ""ImproperImageHeader"" (" """) (string_content "ImproperImageHeader") (" """)) (, ",") (string_literal ""`%s\'"" (" """) (string_content "`%s") (escape_sequence "\'") (" """)) (, ",") (binary_expression "param_1 + 0x2270" (identifier "param_1") (+ "+") (number_literal "0x2270")) () ")"))) (; ";")) (if_statement "if (local_2060 != 0) {\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }" (if "if") (parenthesized_expression "(local_2060 != 0)" (( "(") (binary_expression "local_2060 != 0" (identifier "local_2060") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          CloseBlob();\n          DestroyImageList(local_2060);\n        }" ({ "{") (expression_statement "CloseBlob();" (call_expression "CloseBlob()" (identifier "CloseBlob") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "DestroyImageList(local_2060);" (call_expression "DestroyImageList(local_2060)" (identifier "DestroyImageList") (argument_list "(local_2060)" (( "(") (identifier "local_2060") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" (identifier "lVar15") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0033a403;" (goto "goto") (statement_identifier "LAB_0033a403") (; ";")) (} "}"))) (expression_statement "iVar6 = LocaleCompare(local_2048,"TITLE ");" (assignment_expression "iVar6 = LocaleCompare(local_2048,"TITLE ")" (identifier "iVar6") (= "=") (call_expression "LocaleCompare(local_2048,"TITLE ")" (identifier "LocaleCompare") (argument_list "(local_2048,"TITLE ")" (( "(") (identifier "local_2048") (, ",") (string_literal ""TITLE "" (" """) (string_content "TITLE ") (" """)) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      GetNextToken(local_2058,&local_2058,0x1000,local_1048);\n      SetImageProperty(local_2060,"title",local_1048,param_2);\n      goto LAB_0033a25a;\n    }" ({ "{") (expression_statement "GetNextToken(local_2058,&local_2058,0x1000,local_1048);" (call_expression "GetNextToken(local_2058,&local_2058,0x1000,local_1048)" (identifier "GetNextToken") (argument_list "(local_2058,&local_2058,0x1000,local_1048)" (( "(") (identifier "local_2058") (, ",") (pointer_expression "&local_2058" (& "&") (identifier "local_2058")) (, ",") (number_literal "0x1000") (, ",") (identifier "local_1048") () ")"))) (; ";")) (expression_statement "SetImageProperty(local_2060,"title",local_1048,param_2);" (call_expression "SetImageProperty(local_2060,"title",local_1048,param_2)" (identifier "SetImageProperty") (argument_list "(local_2060,"title",local_1048,param_2)" (( "(") (identifier "local_2060") (, ",") (string_literal ""title"" (" """) (string_content "title") (" """)) (, ",") (identifier "local_1048") (, ",") (identifier "param_2") () ")"))) (; ";")) (goto_statement "goto LAB_0033a25a;" (goto "goto") (statement_identifier "LAB_0033a25a") (; ";")) (} "}"))) (if_statement "if (uVar13 != 0) {\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }" (if "if") (parenthesized_expression "(uVar13 != 0)" (( "(") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      lVar9 = uVar13 * uVar13 * uVar13;\n      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;\n      local_2050 = pcVar8;\n      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);\n      pfVar2 = (float *)((long)__s + lVar15 * 0xc);\n      *pfVar2 = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[1] = (float)dVar18;\n      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);\n      pfVar2[2] = (float)dVar18;\n      lVar15 = lVar15 + 1;\n      goto LAB_0033a25a;\n    }" ({ "{") (expression_statement "lVar9 = uVar13 * uVar13 * uVar13;" (assignment_expression "lVar9 = uVar13 * uVar13 * uVar13" (identifier "lVar9") (= "=") (binary_expression "uVar13 * uVar13 * uVar13" (binary_expression "uVar13 * uVar13" (identifier "uVar13") (* "*") (identifier "uVar13")) (* "*") (identifier "uVar13"))) (; ";")) (if_statement "if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;" (if "if") (parenthesized_expression "(lVar9 - lVar15 == 0 || lVar9 < lVar15)" (( "(") (binary_expression "lVar9 - lVar15 == 0 || lVar9 < lVar15" (binary_expression "lVar9 - lVar15 == 0" (binary_expression "lVar9 - lVar15" (identifier "lVar9") (- "-") (identifier "lVar15")) (== "==") (number_literal "0")) (|| "||") (binary_expression "lVar9 < lVar15" (identifier "lVar9") (< "<") (identifier "lVar15"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_2050 = pcVar8;" (assignment_expression "local_2050 = pcVar8" (identifier "local_2050") (= "=") (identifier "pcVar8")) (; ";")) (expression_statement "dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);" (assignment_expression "dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050)" (identifier "dVar18") (= "=") (cast_expression "(double)InterpretLocaleValue(pcVar8,&local_2050)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "InterpretLocaleValue(pcVar8,&local_2050)" (identifier "InterpretLocaleValue") (argument_list "(pcVar8,&local_2050)" (( "(") (identifier "pcVar8") (, ",") (pointer_expression "&local_2050" (& "&") (identifier "local_2050")) () ")"))))) (; ";")) (expression_statement "pfVar2 = (float *)((long)__s + lVar15 * 0xc);" (assignment_expression "pfVar2 = (float *)((long)__s + lVar15 * 0xc)" (identifier "pfVar2") (= "=") (cast_expression "(float *)((long)__s + lVar15 * 0xc)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__s + lVar15 * 0xc)" (( "(") (binary_expression "(long)__s + lVar15 * 0xc" (cast_expression "(long)__s" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__s")) (+ "+") (binary_expression "lVar15 * 0xc" (identifier "lVar15") (* "*") (number_literal "0xc"))) () ")")))) (; ";")) (expression_statement "*pfVar2 = (float)dVar18;" (assignment_expression "*pfVar2 = (float)dVar18" (pointer_expression "*pfVar2" (* "*") (identifier "pfVar2")) (= "=") (cast_expression "(float)dVar18" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar18"))) (; ";")) (expression_statement "dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);" (assignment_expression "dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050)" (identifier "dVar18") (= "=") (cast_expression "(double)InterpretLocaleValue(local_2050,&local_2050)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "InterpretLocaleValue(local_2050,&local_2050)" (identifier "InterpretLocaleValue") (argument_list "(local_2050,&local_2050)" (( "(") (identifier "local_2050") (, ",") (pointer_expression "&local_2050" (& "&") (identifier "local_2050")) () ")"))))) (; ";")) (expression_statement "pfVar2[1] = (float)dVar18;" (assignment_expression "pfVar2[1] = (float)dVar18" (subscript_expression "pfVar2[1]" (identifier "pfVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(float)dVar18" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar18"))) (; ";")) (expression_statement "dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);" (assignment_expression "dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050)" (identifier "dVar18") (= "=") (cast_expression "(double)InterpretLocaleValue(local_2050,&local_2050)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "InterpretLocaleValue(local_2050,&local_2050)" (identifier "InterpretLocaleValue") (argument_list "(local_2050,&local_2050)" (( "(") (identifier "local_2050") (, ",") (pointer_expression "&local_2050" (& "&") (identifier "local_2050")) () ")"))))) (; ";")) (expression_statement "pfVar2[2] = (float)dVar18;" (assignment_expression "pfVar2[2] = (float)dVar18" (subscript_expression "pfVar2[2]" (identifier "pfVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(float)dVar18" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar18"))) (; ";")) (expression_statement "lVar15 = lVar15 + 1;" (assignment_expression "lVar15 = lVar15 + 1" (identifier "lVar15") (= "=") (binary_expression "lVar15 + 1" (identifier "lVar15") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_0033a25a;" (goto "goto") (statement_identifier "LAB_0033a25a") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(0xd < (byte)(*pcVar8 - 0x2cU))" (( "(") (binary_expression "0xd < (byte)(*pcVar8 - 0x2cU)" (number_literal "0xd") (< "<") (call_expression "(byte)(*pcVar8 - 0x2cU)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*pcVar8 - 0x2cU)" (( "(") (binary_expression "*pcVar8 - 0x2cU" (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) (- "-") (number_literal "0x2cU")) () ")")))) () ")")) (; ";"))) (labeled_statement "LAB_0033a378:\n  DestroyString(pcVar8);" (statement_identifier "LAB_0033a378") (: ":") (expression_statement "DestroyString(pcVar8);" (call_expression "DestroyString(pcVar8)" (identifier "DestroyString") (argument_list "(pcVar8)" (( "(") (identifier "pcVar8") () ")"))) (; ";"))) (if_statement "if (uVar13 == 0) {\n    if (local_20a0 != 0) {\n      RelinquishVirtualMemory(local_20a0);\n    }\n    ThrowMagickException\n              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270);\n    lVar15 = local_2060;\n    if (local_2060 != 0) {\n      CloseBlob(local_2060);\n      DestroyImageList(local_2060);\n      lVar15 = 0;\n    }\n    goto LAB_0033a403;\n  }" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (local_20a0 != 0) {\n      RelinquishVirtualMemory(local_20a0);\n    }\n    ThrowMagickException\n              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270);\n    lVar15 = local_2060;\n    if (local_2060 != 0) {\n      CloseBlob(local_2060);\n      DestroyImageList(local_2060);\n      lVar15 = 0;\n    }\n    goto LAB_0033a403;\n  }" ({ "{") (if_statement "if (local_20a0 != 0) {\n      RelinquishVirtualMemory(local_20a0);\n    }" (if "if") (parenthesized_expression "(local_20a0 != 0)" (( "(") (binary_expression "local_20a0 != 0" (identifier "local_20a0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      RelinquishVirtualMemory(local_20a0);\n    }" ({ "{") (expression_statement "RelinquishVirtualMemory(local_20a0);" (call_expression "RelinquishVirtualMemory(local_20a0)" (identifier "RelinquishVirtualMemory") (argument_list "(local_20a0)" (( "(") (identifier "local_20a0") () ")"))) (; ";")) (} "}"))) (expression_statement "ThrowMagickException\n              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270);" (call_expression "ThrowMagickException\n              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270)" (identifier "ThrowMagickException") (argument_list "(param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x2270)" (( "(") (identifier "param_2") (, ",") (string_literal ""coders/cube.c"" (" """) (string_content "coders/cube.c") (" """)) (, ",") (string_literal ""ReadCUBEImage"" (" """) (string_content "ReadCUBEImage") (" """)) (, ",") (number_literal "0xe0") (, ",") (number_literal "0x1a9") (, ",") (string_literal ""ImproperImageHeader"" (" """) (string_content "ImproperImageHeader") (" """)) (, ",") (string_literal ""`%s\'"" (" """) (string_content "`%s") (escape_sequence "\'") (" """)) (, ",") (binary_expression "param_1 + 0x2270" (identifier "param_1") (+ "+") (number_literal "0x2270")) () ")"))) (; ";")) (expression_statement "lVar15 = local_2060;" (assignment_expression "lVar15 = local_2060" (identifier "lVar15") (= "=") (identifier "local_2060")) (; ";")) (if_statement "if (local_2060 != 0) {\n      CloseBlob(local_2060);\n      DestroyImageList(local_2060);\n      lVar15 = 0;\n    }" (if "if") (parenthesized_expression "(local_2060 != 0)" (( "(") (binary_expression "local_2060 != 0" (identifier "local_2060") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      CloseBlob(local_2060);\n      DestroyImageList(local_2060);\n      lVar15 = 0;\n    }" ({ "{") (expression_statement "CloseBlob(local_2060);" (call_expression "CloseBlob(local_2060)" (identifier "CloseBlob") (argument_list "(local_2060)" (( "(") (identifier "local_2060") () ")"))) (; ";")) (expression_statement "DestroyImageList(local_2060);" (call_expression "DestroyImageList(local_2060)" (identifier "DestroyImageList") (argument_list "(local_2060)" (( "(") (identifier "local_2060") () ")"))) (; ";")) (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" (identifier "lVar15") (= "=") (number_literal "0")) (; ";")) (} "}"))) (goto_statement "goto LAB_0033a403;" (goto "goto") (statement_identifier "LAB_0033a403") (; ";")) (} "}"))) (expression_statement "local_2080 = *(ulong *)(param_1 + 0x38);" (assignment_expression "local_2080 = *(ulong *)(param_1 + 0x38)" (identifier "local_2080") (= "=") (pointer_expression "*(ulong *)(param_1 + 0x38)" (* "*") (cast_expression "(ulong *)(param_1 + 0x38)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (if_statement "if (local_2080 - 2 < 0xff) {\n    uVar16 = local_2080 * local_2080;\n    lVar15 = local_2080 * uVar16;\n    *(long *)(local_2060 + 0x20) = lVar15;\n    *(long *)(local_2060 + 0x28) = lVar15;\n    iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2);\n    if (iVar6 == 0) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n    if (0 < (long)uVar16) goto LAB_0033ab1a;\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n  }\n  else {\n    *(undefined8 *)(local_2060 + 0x20) = 0x200;\n    *(undefined8 *)(local_2060 + 0x28) = 0x200;\n    iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);\n    if (iVar6 == 0) goto LAB_0033a49e;\n    uVar16 = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != uVar16);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n    if (iVar6 == 0) {\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n  }" (if "if") (parenthesized_expression "(local_2080 - 2 < 0xff)" (( "(") (binary_expression "local_2080 - 2 < 0xff" (binary_expression "local_2080 - 2" (identifier "local_2080") (- "-") (number_literal "2")) (< "<") (number_literal "0xff")) () ")")) (compound_statement "{\n    uVar16 = local_2080 * local_2080;\n    lVar15 = local_2080 * uVar16;\n    *(long *)(local_2060 + 0x20) = lVar15;\n    *(long *)(local_2060 + 0x28) = lVar15;\n    iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2);\n    if (iVar6 == 0) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n    if (0 < (long)uVar16) goto LAB_0033ab1a;\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n  }" ({ "{") (expression_statement "uVar16 = local_2080 * local_2080;" (assignment_expression "uVar16 = local_2080 * local_2080" (identifier "uVar16") (= "=") (binary_expression "local_2080 * local_2080" (identifier "local_2080") (* "*") (identifier "local_2080"))) (; ";")) (expression_statement "lVar15 = local_2080 * uVar16;" (assignment_expression "lVar15 = local_2080 * uVar16" (identifier "lVar15") (= "=") (binary_expression "local_2080 * uVar16" (identifier "local_2080") (* "*") (identifier "uVar16"))) (; ";")) (expression_statement "*(long *)(local_2060 + 0x20) = lVar15;" (assignment_expression "*(long *)(local_2060 + 0x20) = lVar15" (pointer_expression "*(long *)(local_2060 + 0x20)" (* "*") (cast_expression "(long *)(local_2060 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2060 + 0x20)" (( "(") (binary_expression "local_2060 + 0x20" (identifier "local_2060") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "lVar15")) (; ";")) (expression_statement "*(long *)(local_2060 + 0x28) = lVar15;" (assignment_expression "*(long *)(local_2060 + 0x28) = lVar15" (pointer_expression "*(long *)(local_2060 + 0x28)" (* "*") (cast_expression "(long *)(local_2060 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2060 + 0x28)" (( "(") (binary_expression "local_2060 + 0x28" (identifier "local_2060") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "lVar15")) (; ";")) (expression_statement "iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2);" (assignment_expression "iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2)" (identifier "iVar6") (= "=") (call_expression "SetImageExtent(local_2060,lVar15,lVar15,param_2)" (identifier "SetImageExtent") (argument_list "(local_2060,lVar15,lVar15,param_2)" (( "(") (identifier "local_2060") (, ",") (identifier "lVar15") (, ",") (identifier "lVar15") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }" ({ "{") (labeled_statement "LAB_0033a49e:\n      RelinquishVirtualMemory(local_20a0);" (statement_identifier "LAB_0033a49e") (: ":") (expression_statement "RelinquishVirtualMemory(local_20a0);" (call_expression "RelinquishVirtualMemory(local_20a0)" (identifier "RelinquishVirtualMemory") (argument_list "(local_20a0)" (( "(") (identifier "local_20a0") () ")"))) (; ";"))) (expression_statement "lVar15 = DestroyImageList(local_2060);" (assignment_expression "lVar15 = DestroyImageList(local_2060)" (identifier "lVar15") (= "=") (call_expression "DestroyImageList(local_2060)" (identifier "DestroyImageList") (argument_list "(local_2060)" (( "(") (identifier "local_2060") () ")")))) (; ";")) (goto_statement "goto LAB_0033a403;" (goto "goto") (statement_identifier "LAB_0033a403") (; ";")) (} "}"))) (if_statement "if (0 < (long)uVar16) goto LAB_0033ab1a;" (if "if") (parenthesized_expression "(0 < (long)uVar16)" (( "(") (binary_expression "0 < (long)uVar16" (number_literal "0") (< "<") (cast_expression "(long)uVar16" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar16"))) () ")")) (goto_statement "goto LAB_0033ab1a;" (goto "goto") (statement_identifier "LAB_0033ab1a") (; ";"))) (expression_statement "RelinquishVirtualMemory(local_20a0);" (call_expression "RelinquishVirtualMemory(local_20a0)" (identifier "RelinquishVirtualMemory") (argument_list "(local_20a0)" (( "(") (identifier "local_20a0") () ")"))) (; ";")) (expression_statement "CloseBlob(local_2060);" (call_expression "CloseBlob(local_2060)" (identifier "CloseBlob") (argument_list "(local_2060)" (( "(") (identifier "local_2060") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    *(undefined8 *)(local_2060 + 0x20) = 0x200;\n    *(undefined8 *)(local_2060 + 0x28) = 0x200;\n    iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);\n    if (iVar6 == 0) goto LAB_0033a49e;\n    uVar16 = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != uVar16);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n    if (iVar6 == 0) {\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n  }" (else "else") (compound_statement "{\n    *(undefined8 *)(local_2060 + 0x20) = 0x200;\n    *(undefined8 *)(local_2060 + 0x28) = 0x200;\n    iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);\n    if (iVar6 == 0) goto LAB_0033a49e;\n    uVar16 = 0x40;\n    local_2080 = 8;\nLAB_0033ab1a:\n    local_2070 = 0;\n    local_20a8 = 0;\n    do {\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != uVar16);\n    RelinquishVirtualMemory(local_20a0);\n    CloseBlob(local_2060);\n    if (iVar6 == 0) {\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }\n  }" ({ "{") (expression_statement "*(undefined8 *)(local_2060 + 0x20) = 0x200;" (assignment_expression "*(undefined8 *)(local_2060 + 0x20) = 0x200" (pointer_expression "*(undefined8 *)(local_2060 + 0x20)" (* "*") (cast_expression "(undefined8 *)(local_2060 + 0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2060 + 0x20)" (( "(") (binary_expression "local_2060 + 0x20" (identifier "local_2060") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0x200")) (; ";")) (expression_statement "*(undefined8 *)(local_2060 + 0x28) = 0x200;" (assignment_expression "*(undefined8 *)(local_2060 + 0x28) = 0x200" (pointer_expression "*(undefined8 *)(local_2060 + 0x28)" (* "*") (cast_expression "(undefined8 *)(local_2060 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2060 + 0x28)" (( "(") (binary_expression "local_2060 + 0x28" (identifier "local_2060") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (number_literal "0x200")) (; ";")) (expression_statement "iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);" (assignment_expression "iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2)" (identifier "iVar6") (= "=") (call_expression "SetImageExtent(local_2060,0x200,0x200,param_2)" (identifier "SetImageExtent") (argument_list "(local_2060,0x200,0x200,param_2)" (( "(") (identifier "local_2060") (, ",") (number_literal "0x200") (, ",") (number_literal "0x200") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) goto LAB_0033a49e;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0033a49e;" (goto "goto") (statement_identifier "LAB_0033a49e") (; ";"))) (expression_statement "uVar16 = 0x40;" (assignment_expression "uVar16 = 0x40" (identifier "uVar16") (= "=") (number_literal "0x40")) (; ";")) (expression_statement "local_2080 = 8;" (assignment_expression "local_2080 = 8" (identifier "local_2080") (= "=") (number_literal "8")) (; ";")) (labeled_statement "LAB_0033ab1a:\n    local_2070 = 0;" (statement_identifier "LAB_0033ab1a") (: ":") (expression_statement "local_2070 = 0;" (assignment_expression "local_2070 = 0" (identifier "local_2070") (= "=") (number_literal "0")) (; ";"))) (expression_statement "local_20a8 = 0;" (assignment_expression "local_20a8 = 0" (identifier "local_20a8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    } while (local_20a8 != uVar16);" (do "do") (compound_statement "{\n      if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }\n      local_20a8 = local_20a8 + 1;\n      local_2070 = local_2070 + local_2080;\n    }" ({ "{") (if_statement "if (iVar6 != 0) {\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar14 = 0;\n        do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);\n      }" ({ "{") (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        } while (uVar14 != uVar16);" (do "do") (compound_statement "{\n          iVar7 = iVar6;\n          if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }\n          iVar6 = iVar7;\n          uVar14 = uVar14 + 1;\n        }" ({ "{") (expression_statement "iVar7 = iVar6;" (assignment_expression "iVar7 = iVar6" (identifier "iVar7") (= "=") (identifier "iVar6")) (; ";")) (if_statement "if (iVar6 != 0) {\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);\n            uVar5 = DAT_0043b420;\n            if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }\n          }" ({ "{") (expression_statement "lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);" (assignment_expression "lVar15 = QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2)" (identifier "lVar15") (= "=") (call_expression "QueueAuthenticPixels\n                               (local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2)" (identifier "QueueAuthenticPixels") (argument_list "(local_2060,(uVar14 % local_2080) * uVar16,\n                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2)" (( "(") (identifier "local_2060") (, ",") (binary_expression "(uVar14 % local_2080) * uVar16" (parenthesized_expression "(uVar14 % local_2080)" (( "(") (binary_expression "uVar14 % local_2080" (identifier "uVar14") (% "%") (identifier "local_2080")) () ")")) (* "*") (identifier "uVar16")) (, ",") (binary_expression "(uVar14 / local_2080) % uVar16 + local_2070" (binary_expression "(uVar14 / local_2080) % uVar16" (parenthesized_expression "(uVar14 / local_2080)" (( "(") (binary_expression "uVar14 / local_2080" (identifier "uVar14") (/ "/") (identifier "local_2080")) () ")")) (% "%") (identifier "uVar16")) (+ "+") (identifier "local_2070")) (, ",") (identifier "uVar16") (, ",") (number_literal "1") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "uVar5 = DAT_0043b420;" (assignment_expression "uVar5 = DAT_0043b420" (identifier "uVar5") (= "=") (identifier "DAT_0043b420")) (; ";")) (if_statement "if (lVar15 == 0) {\n              iVar7 = 0;\n            }\n            else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar7 = 0;\n            }" ({ "{") (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }" (else "else") (compound_statement "{\n              dVar35 = (double)uVar16 - DAT_003f9608;\n              dVar18 = DAT_003f9c68;\n              if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }\n              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;\n              dVar36 = DAT_003f9c68;\n              if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }\n              uVar11 = 0;\n              do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);\n              iVar7 = SyncAuthenticPixels(local_2060,param_2);\n              if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }\n            }" ({ "{") (expression_statement "dVar35 = (double)uVar16 - DAT_003f9608;" (assignment_expression "dVar35 = (double)uVar16 - DAT_003f9608" (identifier "dVar35") (= "=") (binary_expression "(double)uVar16 - DAT_003f9608" (cast_expression "(double)uVar16" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "uVar16")) (- "-") (identifier "DAT_003f9608"))) (; ";")) (expression_statement "dVar18 = DAT_003f9c68;" (assignment_expression "dVar18 = DAT_003f9c68" (identifier "dVar18") (= "=") (identifier "DAT_003f9c68")) (; ";")) (if_statement "if (0.0 <= dVar35) {\n                dVar18 = DAT_003f9608;\n              }" (if "if") (parenthesized_expression "(0.0 <= dVar35)" (( "(") (binary_expression "0.0 <= dVar35" (number_literal "0.0") (<= "<=") (identifier "dVar35")) () ")")) (compound_statement "{\n                dVar18 = DAT_003f9608;\n              }" ({ "{") (expression_statement "dVar18 = DAT_003f9608;" (assignment_expression "dVar18 = DAT_003f9608" (identifier "dVar18") (= "=") (identifier "DAT_003f9608")) (; ";")) (} "}"))) (expression_statement "dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;" (assignment_expression "dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608" (identifier "dVar34") (= "=") (binary_expression "(double)local_2080 * (double)local_2080 - DAT_003f9608" (binary_expression "(double)local_2080 * (double)local_2080" (cast_expression "(double)local_2080" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_2080")) (* "*") (cast_expression "(double)local_2080" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_2080"))) (- "-") (identifier "DAT_003f9608"))) (; ";")) (expression_statement "dVar36 = DAT_003f9c68;" (assignment_expression "dVar36 = DAT_003f9c68" (identifier "dVar36") (= "=") (identifier "DAT_003f9c68")) (; ";")) (if_statement "if (0.0 <= dVar34) {\n                dVar36 = DAT_003f9608;\n              }" (if "if") (parenthesized_expression "(0.0 <= dVar34)" (( "(") (binary_expression "0.0 <= dVar34" (number_literal "0.0") (<= "<=") (identifier "dVar34")) () ")")) (compound_statement "{\n                dVar36 = DAT_003f9608;\n              }" ({ "{") (expression_statement "dVar36 = DAT_003f9608;" (assignment_expression "dVar36 = DAT_003f9608" (identifier "dVar36") (= "=") (identifier "DAT_003f9608")) (; ";")) (} "}"))) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              } while (uVar11 != uVar16);" (do "do") (compound_statement "{\n                fVar4 = _DAT_003fa400;\n                if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }\n                dVar19 = (double)uVar13 - DAT_003f9608;\n                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;\n                fVar26 = (float)dVar22;\n                fVar23 = fVar26;\n                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }\n                uVar1 = uVar13 - 1;\n                if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }\n                fVar33 = fVar23;\n                if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }\n                if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }\n                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;\n                fVar24 = (float)dVar25;\n                fVar29 = fVar24;\n                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }\n                if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }\n                fVar27 = fVar29;\n                if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }\n                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;\n                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);\n                fVar21 = (float)dVar19;\n                auVar20._4_4_ = uVar3;\n                auVar20._0_4_ = fVar21;\n                auVar20._8_8_ = 0;\n                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }\n                fVar17 = auVar20._0_4_;\n                if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }\n                if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }\n                fVar31 = (float)uVar13;\n                fVar28 = fVar17 * fVar31 * fVar31;\n                fVar32 = fVar28 + fVar29 * fVar31;\n                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;\n                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;\n                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;\n                uVar11 = uVar11 + 1;\n              }" ({ "{") (expression_statement "fVar4 = _DAT_003fa400;" (assignment_expression "fVar4 = _DAT_003fa400" (identifier "fVar4") (= "=") (identifier "_DAT_003fa400")) (; ";")) (if_statement "if (dVar18 * dVar35 < DAT_003f9600) {\n                  dVar22 = dVar18 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }" (if "if") (parenthesized_expression "(dVar18 * dVar35 < DAT_003f9600)" (( "(") (binary_expression "dVar18 * dVar35 < DAT_003f9600" (binary_expression "dVar18 * dVar35" (identifier "dVar18") (* "*") (identifier "dVar35")) (< "<") (identifier "DAT_003f9600")) () ")")) (compound_statement "{\n                  dVar22 = dVar18 / DAT_003f9600;\n                }" ({ "{") (expression_statement "dVar22 = dVar18 / DAT_003f9600;" (assignment_expression "dVar22 = dVar18 / DAT_003f9600" (identifier "dVar22") (= "=") (binary_expression "dVar18 / DAT_003f9600" (identifier "dVar18") (/ "/") (identifier "DAT_003f9600"))) (; ";")) (} "}")) (else_clause "else {\n                  dVar22 = DAT_003f9608 / dVar35;\n                }" (else "else") (compound_statement "{\n                  dVar22 = DAT_003f9608 / dVar35;\n                }" ({ "{") (expression_statement "dVar22 = DAT_003f9608 / dVar35;" (assignment_expression "dVar22 = DAT_003f9608 / dVar35" (identifier "dVar22") (= "=") (binary_expression "DAT_003f9608 / dVar35" (identifier "DAT_003f9608") (/ "/") (identifier "dVar35"))) (; ";")) (} "}")))) (expression_statement "dVar19 = (double)uVar13 - DAT_003f9608;" (assignment_expression "dVar19 = (double)uVar13 - DAT_003f9608" (identifier "dVar19") (= "=") (binary_expression "(double)uVar13 - DAT_003f9608" (cast_expression "(double)uVar13" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "uVar13")) (- "-") (identifier "DAT_003f9608"))) (; ";")) (expression_statement "dVar22 = (double)(long)uVar11 * dVar22 * dVar19;" (assignment_expression "dVar22 = (double)(long)uVar11 * dVar22 * dVar19" (identifier "dVar22") (= "=") (binary_expression "(double)(long)uVar11 * dVar22 * dVar19" (binary_expression "(double)(long)uVar11 * dVar22" (cast_expression "(double)(long)uVar11" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(long)uVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar11"))) (* "*") (identifier "dVar22")) (* "*") (identifier "dVar19"))) (; ";")) (expression_statement "fVar26 = (float)dVar22;" (assignment_expression "fVar26 = (float)dVar22" (identifier "fVar26") (= "=") (cast_expression "(float)dVar22" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar22"))) (; ";")) (expression_statement "fVar23 = fVar26;" (assignment_expression "fVar23 = fVar26" (identifier "fVar23") (= "=") (identifier "fVar26")) (; ";")) (if_statement "if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }" (if "if") (parenthesized_expression "((float)((uint)fVar26 & uVar5) < _DAT_0043b430)" (( "(") (binary_expression "(float)((uint)fVar26 & uVar5) < _DAT_0043b430" (cast_expression "(float)((uint)fVar26 & uVar5)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((uint)fVar26 & uVar5)" (( "(") (binary_expression "(uint)fVar26 & uVar5" (cast_expression "(uint)fVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar26")) (& "&") (identifier "uVar5")) () ")"))) (< "<") (identifier "_DAT_0043b430")) () ")")) (compound_statement "{\n                  fVar23 = (float)(int)dVar22;\n                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);\n                }" ({ "{") (expression_statement "fVar23 = (float)(int)dVar22;" (assignment_expression "fVar23 = (float)(int)dVar22" (identifier "fVar23") (= "=") (cast_expression "(float)(int)dVar22" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (cast_expression "(int)dVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar22")))) (; ";")) (expression_statement "fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26);" (assignment_expression "fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26)" (identifier "fVar23") (= "=") (cast_expression "(float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26)" (( "(") (binary_expression "(uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar26" (call_expression "(uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988))" (( "(") (binary_expression "fVar23 - (float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)" (identifier "fVar23") (- "-") (cast_expression "(float)(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988)" (( "(") (binary_expression "-(uint)(fVar26 < fVar23) &\n                                                          (uint)DAT_00404988" (unary_expression "-(uint)(fVar26 < fVar23)" (- "-") (call_expression "(uint)(fVar26 < fVar23)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(fVar26 < fVar23)" (( "(") (binary_expression "fVar26 < fVar23" (identifier "fVar26") (< "<") (identifier "fVar23")) () ")")))) (& "&") (cast_expression "(uint)DAT_00404988" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "DAT_00404988"))) () ")")))) () ")"))) (| "|") (binary_expression "~uVar5 & (uint)fVar26" (unary_expression "~uVar5" (~ "~") (identifier "uVar5")) (& "&") (cast_expression "(uint)fVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar26")))) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar1 = uVar13 - 1;" (assignment_expression "uVar1 = uVar13 - 1" (identifier "uVar1") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (if_statement "if (DAT_00420e38 <= fVar23) {\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar23;\n                }" (if "if") (parenthesized_expression "(DAT_00420e38 <= fVar23)" (( "(") (binary_expression "DAT_00420e38 <= fVar23" (identifier "DAT_00420e38") (<= "<=") (identifier "fVar23")) () ")")) (compound_statement "{\n                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;\n                }" ({ "{") (expression_statement "uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;" (assignment_expression "uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000" (identifier "uVar12") (= "=") (binary_expression "(long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000" (cast_expression "(long)(fVar23 - DAT_00420e38)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(fVar23 - DAT_00420e38)" (( "(") (binary_expression "fVar23 - DAT_00420e38" (identifier "fVar23") (- "-") (identifier "DAT_00420e38")) () ")"))) (^ "^") (number_literal "0x8000000000000000"))) (; ";")) (} "}")) (else_clause "else {\n                  uVar12 = (ulong)fVar23;\n                }" (else "else") (compound_statement "{\n                  uVar12 = (ulong)fVar23;\n                }" ({ "{") (expression_statement "uVar12 = (ulong)fVar23;" (assignment_expression "uVar12 = (ulong)fVar23" (identifier "uVar12") (= "=") (cast_expression "(ulong)fVar23" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "fVar23"))) (; ";")) (} "}")))) (expression_statement "fVar33 = fVar23;" (assignment_expression "fVar33 = fVar23" (identifier "fVar33") (= "=") (identifier "fVar23")) (; ";")) (if_statement "if (uVar12 != uVar1) {\n                  fVar33 = fVar23 + DAT_00404988;\n                }" (if "if") (parenthesized_expression "(uVar12 != uVar1)" (( "(") (binary_expression "uVar12 != uVar1" (identifier "uVar12") (!= "!=") (identifier "uVar1")) () ")")) (compound_statement "{\n                  fVar33 = fVar23 + DAT_00404988;\n                }" ({ "{") (expression_statement "fVar33 = fVar23 + DAT_00404988;" (assignment_expression "fVar33 = fVar23 + DAT_00404988" (identifier "fVar33") (= "=") (binary_expression "fVar23 + DAT_00404988" (identifier "fVar23") (+ "+") (identifier "DAT_00404988"))) (; ";")) (} "}"))) (if_statement "if (dVar36 * dVar34 < DAT_003f9600) {\n                  dVar22 = dVar36 / DAT_003f9600;\n                }\n                else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }" (if "if") (parenthesized_expression "(dVar36 * dVar34 < DAT_003f9600)" (( "(") (binary_expression "dVar36 * dVar34 < DAT_003f9600" (binary_expression "dVar36 * dVar34" (identifier "dVar36") (* "*") (identifier "dVar34")) (< "<") (identifier "DAT_003f9600")) () ")")) (compound_statement "{\n                  dVar22 = dVar36 / DAT_003f9600;\n                }" ({ "{") (expression_statement "dVar22 = dVar36 / DAT_003f9600;" (assignment_expression "dVar22 = dVar36 / DAT_003f9600" (identifier "dVar22") (= "=") (binary_expression "dVar36 / DAT_003f9600" (identifier "dVar36") (/ "/") (identifier "DAT_003f9600"))) (; ";")) (} "}")) (else_clause "else {\n                  dVar22 = DAT_003f9608 / dVar34;\n                }" (else "else") (compound_statement "{\n                  dVar22 = DAT_003f9608 / dVar34;\n                }" ({ "{") (expression_statement "dVar22 = DAT_003f9608 / dVar34;" (assignment_expression "dVar22 = DAT_003f9608 / dVar34" (identifier "dVar22") (= "=") (binary_expression "DAT_003f9608 / dVar34" (identifier "DAT_003f9608") (/ "/") (identifier "dVar34"))) (; ";")) (} "}")))) (expression_statement "dVar25 = (double)(long)uVar14 * dVar22 * dVar19;" (assignment_expression "dVar25 = (double)(long)uVar14 * dVar22 * dVar19" (identifier "dVar25") (= "=") (binary_expression "(double)(long)uVar14 * dVar22 * dVar19" (binary_expression "(double)(long)uVar14 * dVar22" (cast_expression "(double)(long)uVar14" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(long)uVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar14"))) (* "*") (identifier "dVar22")) (* "*") (identifier "dVar19"))) (; ";")) (expression_statement "fVar24 = (float)dVar25;" (assignment_expression "fVar24 = (float)dVar25" (identifier "fVar24") (= "=") (cast_expression "(float)dVar25" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar25"))) (; ";")) (expression_statement "fVar29 = fVar24;" (assignment_expression "fVar29 = fVar24" (identifier "fVar29") (= "=") (identifier "fVar24")) (; ";")) (if_statement "if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }" (if "if") (parenthesized_expression "((float)((uint)fVar24 & uVar5) < _DAT_0043b430)" (( "(") (binary_expression "(float)((uint)fVar24 & uVar5) < _DAT_0043b430" (cast_expression "(float)((uint)fVar24 & uVar5)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((uint)fVar24 & uVar5)" (( "(") (binary_expression "(uint)fVar24 & uVar5" (cast_expression "(uint)fVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar24")) (& "&") (identifier "uVar5")) () ")"))) (< "<") (identifier "_DAT_0043b430")) () ")")) (compound_statement "{\n                  fVar29 = (float)(int)dVar25;\n                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);\n                }" ({ "{") (expression_statement "fVar29 = (float)(int)dVar25;" (assignment_expression "fVar29 = (float)(int)dVar25" (identifier "fVar29") (= "=") (cast_expression "(float)(int)dVar25" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (cast_expression "(int)dVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar25")))) (; ";")) (expression_statement "fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24);" (assignment_expression "fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24)" (identifier "fVar29") (= "=") (cast_expression "(float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24)" (( "(") (binary_expression "(uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)) |\n                                  ~uVar5 & (uint)fVar24" (call_expression "(uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988))" (( "(") (binary_expression "fVar29 - (float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)" (identifier "fVar29") (- "-") (cast_expression "(float)(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988)" (( "(") (binary_expression "-(uint)(fVar24 < fVar29) &\n                                                          (uint)DAT_00404988" (unary_expression "-(uint)(fVar24 < fVar29)" (- "-") (call_expression "(uint)(fVar24 < fVar29)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(fVar24 < fVar29)" (( "(") (binary_expression "fVar24 < fVar29" (identifier "fVar24") (< "<") (identifier "fVar29")) () ")")))) (& "&") (cast_expression "(uint)DAT_00404988" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "DAT_00404988"))) () ")")))) () ")"))) (| "|") (binary_expression "~uVar5 & (uint)fVar24" (unary_expression "~uVar5" (~ "~") (identifier "uVar5")) (& "&") (cast_expression "(uint)fVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar24")))) () ")")))) (; ";")) (} "}"))) (if_statement "if (DAT_00420e38 <= fVar29) {\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar29;\n                }" (if "if") (parenthesized_expression "(DAT_00420e38 <= fVar29)" (( "(") (binary_expression "DAT_00420e38 <= fVar29" (identifier "DAT_00420e38") (<= "<=") (identifier "fVar29")) () ")")) (compound_statement "{\n                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;\n                }" ({ "{") (expression_statement "uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;" (assignment_expression "uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000" (identifier "uVar12") (= "=") (binary_expression "(long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000" (cast_expression "(long)(fVar29 - DAT_00420e38)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(fVar29 - DAT_00420e38)" (( "(") (binary_expression "fVar29 - DAT_00420e38" (identifier "fVar29") (- "-") (identifier "DAT_00420e38")) () ")"))) (^ "^") (number_literal "0x8000000000000000"))) (; ";")) (} "}")) (else_clause "else {\n                  uVar12 = (ulong)fVar29;\n                }" (else "else") (compound_statement "{\n                  uVar12 = (ulong)fVar29;\n                }" ({ "{") (expression_statement "uVar12 = (ulong)fVar29;" (assignment_expression "uVar12 = (ulong)fVar29" (identifier "uVar12") (= "=") (cast_expression "(ulong)fVar29" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "fVar29"))) (; ";")) (} "}")))) (expression_statement "fVar27 = fVar29;" (assignment_expression "fVar27 = fVar29" (identifier "fVar27") (= "=") (identifier "fVar29")) (; ";")) (if_statement "if (uVar1 != uVar12) {\n                  fVar27 = fVar29 + DAT_00404988;\n                }" (if "if") (parenthesized_expression "(uVar1 != uVar12)" (( "(") (binary_expression "uVar1 != uVar12" (identifier "uVar1") (!= "!=") (identifier "uVar12")) () ")")) (compound_statement "{\n                  fVar27 = fVar29 + DAT_00404988;\n                }" ({ "{") (expression_statement "fVar27 = fVar29 + DAT_00404988;" (assignment_expression "fVar27 = fVar29 + DAT_00404988" (identifier "fVar27") (= "=") (binary_expression "fVar29 + DAT_00404988" (identifier "fVar29") (+ "+") (identifier "DAT_00404988"))) (; ";")) (} "}"))) (expression_statement "dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;" (assignment_expression "dVar19 = dVar22 * (double)(long)local_20a8 * dVar19" (identifier "dVar19") (= "=") (binary_expression "dVar22 * (double)(long)local_20a8 * dVar19" (binary_expression "dVar22 * (double)(long)local_20a8" (identifier "dVar22") (* "*") (cast_expression "(double)(long)local_20a8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(long)local_20a8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_20a8")))) (* "*") (identifier "dVar19"))) (; ";")) (expression_statement "uVar3 = (undefined4)((ulong)dVar19 >> 0x20);" (assignment_expression "uVar3 = (undefined4)((ulong)dVar19 >> 0x20)" (identifier "uVar3") (= "=") (call_expression "(undefined4)((ulong)dVar19 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulong)dVar19 >> 0x20)" (( "(") (binary_expression "(ulong)dVar19 >> 0x20" (cast_expression "(ulong)dVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "dVar19")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "fVar21 = (float)dVar19;" (assignment_expression "fVar21 = (float)dVar19" (identifier "fVar21") (= "=") (cast_expression "(float)dVar19" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar19"))) (; ";")) (expression_statement "auVar20._4_4_ = uVar3;" (assignment_expression "auVar20._4_4_ = uVar3" (field_expression "auVar20._4_4_" (identifier "auVar20") (. ".") (field_identifier "_4_4_")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "auVar20._0_4_ = fVar21;" (assignment_expression "auVar20._0_4_ = fVar21" (field_expression "auVar20._0_4_" (identifier "auVar20") (. ".") (field_identifier "_0_4_")) (= "=") (identifier "fVar21")) (; ";")) (expression_statement "auVar20._8_8_ = 0;" (assignment_expression "auVar20._8_8_ = 0" (field_expression "auVar20._8_8_" (identifier "auVar20") (. ".") (field_identifier "_8_8_")) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }" (if "if") (parenthesized_expression "((float)((uint)fVar21 & uVar5) < _DAT_0043b430)" (( "(") (binary_expression "(float)((uint)fVar21 & uVar5) < _DAT_0043b430" (cast_expression "(float)((uint)fVar21 & uVar5)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((uint)fVar21 & uVar5)" (( "(") (binary_expression "(uint)fVar21 & uVar5" (cast_expression "(uint)fVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar21")) (& "&") (identifier "uVar5")) () ")"))) (< "<") (identifier "_DAT_0043b430")) () ")")) (compound_statement "{\n                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;\n                  auVar30._4_4_ = uVar3;\n                  auVar30._8_8_ = 0;\n                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;\n                }" ({ "{") (expression_statement "auVar30._0_4_ = ~uVar5 & (uint)fVar21;" (assignment_expression "auVar30._0_4_ = ~uVar5 & (uint)fVar21" (field_expression "auVar30._0_4_" (identifier "auVar30") (. ".") (field_identifier "_0_4_")) (= "=") (binary_expression "~uVar5 & (uint)fVar21" (unary_expression "~uVar5" (~ "~") (identifier "uVar5")) (& "&") (cast_expression "(uint)fVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar21")))) (; ";")) (expression_statement "auVar30._4_4_ = uVar3;" (assignment_expression "auVar30._4_4_ = uVar3" (field_expression "auVar30._4_4_" (identifier "auVar30") (. ".") (field_identifier "_4_4_")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "auVar30._8_8_ = 0;" (assignment_expression "auVar30._8_8_ = 0" (field_expression "auVar30._8_8_" (identifier "auVar30") (. ".") (field_identifier "_8_8_")) (= "=") (number_literal "0")) (; ";")) (expression_statement "auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30;" (assignment_expression "auVar20 = ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30" (identifier "auVar20") (= "=") (binary_expression "ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))) | auVar30" (call_expression "ZEXT416((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988)))" (identifier "ZEXT416") (argument_list "((uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988)))" (( "(") (call_expression "(uint)((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988))" (( "(") (binary_expression "(float)(int)dVar19 -\n                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988)" (cast_expression "(float)(int)dVar19" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (cast_expression "(int)dVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar19"))) (- "-") (cast_expression "(float)(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988)" (( "(") (binary_expression "-(uint)(fVar21 < (float)(int)dVar19) &\n                                                 (uint)DAT_00404988" (unary_expression "-(uint)(fVar21 < (float)(int)dVar19)" (- "-") (call_expression "(uint)(fVar21 < (float)(int)dVar19)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(fVar21 < (float)(int)dVar19)" (( "(") (binary_expression "fVar21 < (float)(int)dVar19" (identifier "fVar21") (< "<") (cast_expression "(float)(int)dVar19" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (cast_expression "(int)dVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar19")))) () ")")))) (& "&") (cast_expression "(uint)DAT_00404988" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "DAT_00404988"))) () ")")))) () ")"))) () ")"))) (| "|") (identifier "auVar30"))) (; ";")) (} "}"))) (expression_statement "fVar17 = auVar20._0_4_;" (assignment_expression "fVar17 = auVar20._0_4_" (identifier "fVar17") (= "=") (field_expression "auVar20._0_4_" (identifier "auVar20") (. ".") (field_identifier "_0_4_"))) (; ";")) (if_statement "if (DAT_00420e38 <= fVar17) {\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }\n                else {\n                  uVar12 = (ulong)fVar17;\n                }" (if "if") (parenthesized_expression "(DAT_00420e38 <= fVar17)" (( "(") (binary_expression "DAT_00420e38 <= fVar17" (identifier "DAT_00420e38") (<= "<=") (identifier "fVar17")) () ")")) (compound_statement "{\n                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;\n                }" ({ "{") (expression_statement "uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;" (assignment_expression "uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000" (identifier "uVar12") (= "=") (binary_expression "(long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000" (cast_expression "(long)(fVar17 - DAT_00420e38)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(fVar17 - DAT_00420e38)" (( "(") (binary_expression "fVar17 - DAT_00420e38" (identifier "fVar17") (- "-") (identifier "DAT_00420e38")) () ")"))) (^ "^") (number_literal "0x8000000000000000"))) (; ";")) (} "}")) (else_clause "else {\n                  uVar12 = (ulong)fVar17;\n                }" (else "else") (compound_statement "{\n                  uVar12 = (ulong)fVar17;\n                }" ({ "{") (expression_statement "uVar12 = (ulong)fVar17;" (assignment_expression "uVar12 = (ulong)fVar17" (identifier "uVar12") (= "=") (cast_expression "(ulong)fVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "fVar17"))) (; ";")) (} "}")))) (if_statement "if (uVar1 != uVar12) {\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }" (if "if") (parenthesized_expression "(uVar1 != uVar12)" (( "(") (binary_expression "uVar1 != uVar12" (identifier "uVar1") (!= "!=") (identifier "uVar12")) () ")")) (compound_statement "{\n                  auVar20._0_4_ = fVar17 + DAT_00404988;\n                }" ({ "{") (expression_statement "auVar20._0_4_ = fVar17 + DAT_00404988;" (assignment_expression "auVar20._0_4_ = fVar17 + DAT_00404988" (field_expression "auVar20._0_4_" (identifier "auVar20") (. ".") (field_identifier "_0_4_")) (= "=") (binary_expression "fVar17 + DAT_00404988" (identifier "fVar17") (+ "+") (identifier "DAT_00404988"))) (; ";")) (} "}"))) (expression_statement "fVar31 = (float)uVar13;" (assignment_expression "fVar31 = (float)uVar13" (identifier "fVar31") (= "=") (cast_expression "(float)uVar13" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar13"))) (; ";")) (expression_statement "fVar28 = fVar17 * fVar31 * fVar31;" (assignment_expression "fVar28 = fVar17 * fVar31 * fVar31" (identifier "fVar28") (= "=") (binary_expression "fVar17 * fVar31 * fVar31" (binary_expression "fVar17 * fVar31" (identifier "fVar17") (* "*") (identifier "fVar31")) (* "*") (identifier "fVar31"))) (; ";")) (expression_statement "fVar32 = fVar28 + fVar29 * fVar31;" (assignment_expression "fVar32 = fVar28 + fVar29 * fVar31" (identifier "fVar32") (= "=") (binary_expression "fVar28 + fVar29 * fVar31" (identifier "fVar28") (+ "+") (binary_expression "fVar29 * fVar31" (identifier "fVar29") (* "*") (identifier "fVar31")))) (; ";")) (expression_statement "pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);" (assignment_expression "pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc)" (identifier "pfVar2") (= "=") (cast_expression "(float *)((long)__s + (long)(fVar23 + fVar32) * 0xc)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__s + (long)(fVar23 + fVar32) * 0xc)" (( "(") (binary_expression "(long)__s + (long)(fVar23 + fVar32) * 0xc" (cast_expression "(long)__s" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__s")) (+ "+") (binary_expression "(long)(fVar23 + fVar32) * 0xc" (cast_expression "(long)(fVar23 + fVar32)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(fVar23 + fVar32)" (( "(") (binary_expression "fVar23 + fVar32" (identifier "fVar23") (+ "+") (identifier "fVar32")) () ")"))) (* "*") (number_literal "0xc"))) () ")")))) (; ";")) (expression_statement "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400;" (assignment_expression "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =\n                     ((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400" (pointer_expression "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4)" (* "*") (cast_expression "(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4)" (( "(") (binary_expression "lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4" (identifier "lVar15") (+ "+") (binary_expression "*(long *)(*(long *)(local_2060 + 0x360) + 8) * 4" (pointer_expression "*(long *)(*(long *)(local_2060 + 0x360) + 8)" (* "*") (cast_expression "(long *)(*(long *)(local_2060 + 0x360) + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(local_2060 + 0x360) + 8)" (( "(") (binary_expression "*(long *)(local_2060 + 0x360) + 8" (pointer_expression "*(long *)(local_2060 + 0x360)" (* "*") (cast_expression "(long *)(local_2060 + 0x360)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2060 + 0x360)" (( "(") (binary_expression "local_2060 + 0x360" (identifier "local_2060") (+ "+") (number_literal "0x360")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (binary_expression "((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *\n                     _DAT_003fa400" (parenthesized_expression "((fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2)" (( "(") (binary_expression "(fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2" (binary_expression "(fVar26 - fVar23) *\n                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2)" (parenthesized_expression "(fVar26 - fVar23)" (( "(") (binary_expression "fVar26 - fVar23" (identifier "fVar26") (- "-") (identifier "fVar23")) () ")")) (* "*") (parenthesized_expression "(*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2)" (( "(") (binary_expression "*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2" (pointer_expression "*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc)" (* "*") (cast_expression "(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__s + (long)(fVar32 + fVar33) * 0xc)" (( "(") (binary_expression "(long)__s + (long)(fVar32 + fVar33) * 0xc" (cast_expression "(long)__s" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__s")) (+ "+") (binary_expression "(long)(fVar32 + fVar33) * 0xc" (cast_expression "(long)(fVar32 + fVar33)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(fVar32 + fVar33)" (( "(") (binary_expression "fVar32 + fVar33" (identifier "fVar32") (+ "+") (identifier "fVar33")) () ")"))) (* "*") (number_literal "0xc"))) () ")")))) (- "-") (pointer_expression "*pfVar2" (* "*") (identifier "pfVar2"))) () ")"))) (+ "+") (pointer_expression "*pfVar2" (* "*") (identifier "pfVar2"))) () ")")) (* "*") (identifier "_DAT_003fa400"))) (; ";")) (expression_statement "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4;" (assignment_expression "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =\n                     ((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4" (pointer_expression "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4)" (* "*") (cast_expression "(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4)" (( "(") (binary_expression "lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4" (identifier "lVar15") (+ "+") (binary_expression "*(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4" (pointer_expression "*(long *)(*(long *)(local_2060 + 0x360) + 0x18)" (* "*") (cast_expression "(long *)(*(long *)(local_2060 + 0x360) + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(local_2060 + 0x360) + 0x18)" (( "(") (binary_expression "*(long *)(local_2060 + 0x360) + 0x18" (pointer_expression "*(long *)(local_2060 + 0x360)" (* "*") (cast_expression "(long *)(local_2060 + 0x360)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2060 + 0x360)" (( "(") (binary_expression "local_2060 + 0x360" (identifier "local_2060") (+ "+") (number_literal "0x360")) () ")")))) (+ "+") (number_literal "0x18")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (binary_expression "((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]) * fVar4" (parenthesized_expression "((fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1])" (( "(") (binary_expression "(fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]) + pfVar2[1]" (binary_expression "(fVar24 - fVar29) *\n                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1])" (parenthesized_expression "(fVar24 - fVar29)" (( "(") (binary_expression "fVar24 - fVar29" (identifier "fVar24") (- "-") (identifier "fVar29")) () ")")) (* "*") (parenthesized_expression "(*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1])" (( "(") (binary_expression "*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -\n                      pfVar2[1]" (pointer_expression "*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4)" (* "*") (cast_expression "(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4)" (( "(") (binary_expression "(long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4" (binary_expression "(long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc" (cast_expression "(long)__s" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__s")) (+ "+") (binary_expression "(long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc" (cast_expression "(long)(fVar28 + fVar27 * fVar31 + fVar23)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(fVar28 + fVar27 * fVar31 + fVar23)" (( "(") (binary_expression "fVar28 + fVar27 * fVar31 + fVar23" (binary_expression "fVar28 + fVar27 * fVar31" (identifier "fVar28") (+ "+") (binary_expression "fVar27 * fVar31" (identifier "fVar27") (* "*") (identifier "fVar31"))) (+ "+") (identifier "fVar23")) () ")"))) (* "*") (number_literal "0xc"))) (+ "+") (number_literal "4")) () ")")))) (- "-") (subscript_expression "pfVar2[1]" (identifier "pfVar2") ([ "[") (number_literal "1") (] "]"))) () ")"))) (+ "+") (subscript_expression "pfVar2[1]" (identifier "pfVar2") ([ "[") (number_literal "1") (] "]"))) () ")")) (* "*") (identifier "fVar4"))) (; ";")) (expression_statement "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;" (assignment_expression "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =\n                     ((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4" (pointer_expression "*(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4)" (* "*") (cast_expression "(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4)" (( "(") (binary_expression "lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4" (identifier "lVar15") (+ "+") (binary_expression "*(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4" (pointer_expression "*(long *)(*(long *)(local_2060 + 0x360) + 0x28)" (* "*") (cast_expression "(long *)(*(long *)(local_2060 + 0x360) + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(local_2060 + 0x360) + 0x28)" (( "(") (binary_expression "*(long *)(local_2060 + 0x360) + 0x28" (pointer_expression "*(long *)(local_2060 + 0x360)" (* "*") (cast_expression "(long *)(local_2060 + 0x360)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2060 + 0x360)" (( "(") (binary_expression "local_2060 + 0x360" (identifier "local_2060") (+ "+") (number_literal "0x360")) () ")")))) (+ "+") (number_literal "0x28")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (binary_expression "((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4" (parenthesized_expression "((fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2])" (( "(") (binary_expression "(fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]" (binary_expression "(fVar21 - fVar17) *\n                      (*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2])" (parenthesized_expression "(fVar21 - fVar17)" (( "(") (binary_expression "fVar21 - fVar17" (identifier "fVar21") (- "-") (identifier "fVar17")) () ")")) (* "*") (parenthesized_expression "(*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2])" (( "(") (binary_expression "*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8) - pfVar2[2]" (pointer_expression "*(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8)" (* "*") (cast_expression "(float *)((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8)" (( "(") (binary_expression "(long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc + 8" (binary_expression "(long)__s +\n                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc" (cast_expression "(long)__s" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__s")) (+ "+") (binary_expression "(long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)\n                                 * 0xc" (cast_expression "(long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)" (( "(") (binary_expression "fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31" (binary_expression "fVar23 + fVar29 * fVar31" (identifier "fVar23") (+ "+") (binary_expression "fVar29 * fVar31" (identifier "fVar29") (* "*") (identifier "fVar31"))) (+ "+") (binary_expression "fVar31 * auVar20._0_4_ * fVar31" (binary_expression "fVar31 * auVar20._0_4_" (identifier "fVar31") (* "*") (field_expression "auVar20._0_4_" (identifier "auVar20") (. ".") (field_identifier "_0_4_"))) (* "*") (identifier "fVar31"))) () ")"))) (* "*") (number_literal "0xc"))) (+ "+") (number_literal "8")) () ")")))) (- "-") (subscript_expression "pfVar2[2]" (identifier "pfVar2") ([ "[") (number_literal "2") (] "]"))) () ")"))) (+ "+") (subscript_expression "pfVar2[2]" (identifier "pfVar2") ([ "[") (number_literal "2") (] "]"))) () ")")) (* "*") (identifier "fVar4"))) (; ";")) (expression_statement "lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;" (assignment_expression "lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4" (identifier "lVar15") (= "=") (binary_expression "lVar15 + *(long *)(local_2060 + 0x340) * 4" (identifier "lVar15") (+ "+") (binary_expression "*(long *)(local_2060 + 0x340) * 4" (pointer_expression "*(long *)(local_2060 + 0x340)" (* "*") (cast_expression "(long *)(local_2060 + 0x340)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2060 + 0x340)" (( "(") (binary_expression "local_2060 + 0x340" (identifier "local_2060") (+ "+") (number_literal "0x340")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" (identifier "uVar11") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar11 != uVar16)" (( "(") (binary_expression "uVar11 != uVar16" (identifier "uVar11") (!= "!=") (identifier "uVar16")) () ")")) (; ";")) (expression_statement "iVar7 = SyncAuthenticPixels(local_2060,param_2);" (assignment_expression "iVar7 = SyncAuthenticPixels(local_2060,param_2)" (identifier "iVar7") (= "=") (call_expression "SyncAuthenticPixels(local_2060,param_2)" (identifier "SyncAuthenticPixels") (argument_list "(local_2060,param_2)" (( "(") (identifier "local_2060") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n                iVar7 = iVar6;\n              }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                iVar7 = iVar6;\n              }" ({ "{") (expression_statement "iVar7 = iVar6;" (assignment_expression "iVar7 = iVar6" (identifier "iVar7") (= "=") (identifier "iVar6")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "iVar6 = iVar7;" (assignment_expression "iVar6 = iVar7" (identifier "iVar6") (= "=") (identifier "iVar7")) (; ";")) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar14 != uVar16)" (( "(") (binary_expression "uVar14 != uVar16" (identifier "uVar14") (!= "!=") (identifier "uVar16")) () ")")) (; ";")) (} "}"))) (expression_statement "local_20a8 = local_20a8 + 1;" (assignment_expression "local_20a8 = local_20a8 + 1" (identifier "local_20a8") (= "=") (binary_expression "local_20a8 + 1" (identifier "local_20a8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_2070 = local_2070 + local_2080;" (assignment_expression "local_2070 = local_2070 + local_2080" (identifier "local_2070") (= "=") (binary_expression "local_2070 + local_2080" (identifier "local_2070") (+ "+") (identifier "local_2080"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_20a8 != uVar16)" (( "(") (binary_expression "local_20a8 != uVar16" (identifier "local_20a8") (!= "!=") (identifier "uVar16")) () ")")) (; ";")) (expression_statement "RelinquishVirtualMemory(local_20a0);" (call_expression "RelinquishVirtualMemory(local_20a0)" (identifier "RelinquishVirtualMemory") (argument_list "(local_20a0)" (( "(") (identifier "local_20a0") () ")"))) (; ";")) (expression_statement "CloseBlob(local_2060);" (call_expression "CloseBlob(local_2060)" (identifier "CloseBlob") (argument_list "(local_2060)" (( "(") (identifier "local_2060") () ")"))) (; ";")) (if_statement "if (iVar6 == 0) {\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      lVar15 = DestroyImageList(local_2060);\n      goto LAB_0033a403;\n    }" ({ "{") (expression_statement "lVar15 = DestroyImageList(local_2060);" (assignment_expression "lVar15 = DestroyImageList(local_2060)" (identifier "lVar15") (= "=") (call_expression "DestroyImageList(local_2060)" (identifier "DestroyImageList") (argument_list "(local_2060)" (( "(") (identifier "local_2060") () ")")))) (; ";")) (goto_statement "goto LAB_0033a403;" (goto "goto") (statement_identifier "LAB_0033a403") (; ";")) (} "}"))) (} "}")))) (if_statement "if (0 < *(long *)(param_1 + 0x38)) {\n    lVar15 = 0;\n    do {\n      uVar10 = CloneImage(local_2060,0,0,1,param_2);\n      AppendImageToList(&local_2060,uVar10);\n      lVar15 = lVar15 + 1;\n    } while (lVar15 < *(long *)(param_1 + 0x38));\n  }" (if "if") (parenthesized_expression "(0 < *(long *)(param_1 + 0x38))" (( "(") (binary_expression "0 < *(long *)(param_1 + 0x38)" (number_literal "0") (< "<") (pointer_expression "*(long *)(param_1 + 0x38)" (* "*") (cast_expression "(long *)(param_1 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (compound_statement "{\n    lVar15 = 0;\n    do {\n      uVar10 = CloneImage(local_2060,0,0,1,param_2);\n      AppendImageToList(&local_2060,uVar10);\n      lVar15 = lVar15 + 1;\n    } while (lVar15 < *(long *)(param_1 + 0x38));\n  }" ({ "{") (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" (identifier "lVar15") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      uVar10 = CloneImage(local_2060,0,0,1,param_2);\n      AppendImageToList(&local_2060,uVar10);\n      lVar15 = lVar15 + 1;\n    } while (lVar15 < *(long *)(param_1 + 0x38));" (do "do") (compound_statement "{\n      uVar10 = CloneImage(local_2060,0,0,1,param_2);\n      AppendImageToList(&local_2060,uVar10);\n      lVar15 = lVar15 + 1;\n    }" ({ "{") (expression_statement "uVar10 = CloneImage(local_2060,0,0,1,param_2);" (assignment_expression "uVar10 = CloneImage(local_2060,0,0,1,param_2)" (identifier "uVar10") (= "=") (call_expression "CloneImage(local_2060,0,0,1,param_2)" (identifier "CloneImage") (argument_list "(local_2060,0,0,1,param_2)" (( "(") (identifier "local_2060") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "AppendImageToList(&local_2060,uVar10);" (call_expression "AppendImageToList(&local_2060,uVar10)" (identifier "AppendImageToList") (argument_list "(&local_2060,uVar10)" (( "(") (pointer_expression "&local_2060" (& "&") (identifier "local_2060")) (, ",") (identifier "uVar10") () ")"))) (; ";")) (expression_statement "lVar15 = lVar15 + 1;" (assignment_expression "lVar15 = lVar15 + 1" (identifier "lVar15") (= "=") (binary_expression "lVar15 + 1" (identifier "lVar15") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar15 < *(long *)(param_1 + 0x38))" (( "(") (binary_expression "lVar15 < *(long *)(param_1 + 0x38)" (identifier "lVar15") (< "<") (pointer_expression "*(long *)(param_1 + 0x38)" (* "*") (cast_expression "(long *)(param_1 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "lVar15 = GetFirstImageInList(local_2060);" (assignment_expression "lVar15 = GetFirstImageInList(local_2060)" (identifier "lVar15") (= "=") (call_expression "GetFirstImageInList(local_2060)" (identifier "GetFirstImageInList") (argument_list "(local_2060)" (( "(") (identifier "local_2060") () ")")))) (; ";")) (labeled_statement "LAB_0033a403:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return lVar15;\n  }" (statement_identifier "LAB_0033a403") (: ":") (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return lVar15;\n  }" (if "if") (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return lVar15;\n  }" ({ "{") (return_statement "return lVar15;" (return "return") (identifier "lVar15") (; ";")) (} "}")))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": 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 */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

type_1 * function_1(type_2 *var_2,type_3 *var_6)

{
  type_4 var_56;
  float *pfVar2;
  long var_78;
  float var_69;
  type_5 var_50;
  type_6 var_9;
  int var_16;
  type_6 var_73;
  char *string;
  char *var_13;
  long var_33;
  type_1 *pIVar11;
  size_t var_71;
  type_7 *var_43;
  type_4 var_55;
  type_4 var_24;
  void *__s;
  type_4 var_41;
  long var_34;
  size_t var_38;
  long var_1;
  float var_70;
  double var_22;
  double var_49;
  float var_62;
  double var_48;
  float var_52;
  float var_60;
  double dVar25;
  float var_53;
  float var_68;
  float var_64;
  float var_59;
  float var_61;
  float var_63;
  float var_65;
  float var_66;
  double var_46;
  double var_45;
  double var_58;
  size_t var_74;
  type_8 *var_17;
  type_4 var_37;
  long var_42;
  type_1 *var_30;
  char *q;
  char *r;
  char token [4096];
  char value [4096];
  
  var_78 = *(long *)(var_1 + 0x28);
  if (var_2 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");
  }
  if (var_2->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,
                  "ReadCUBEImage");
  }
  if (var_2->debug != var_4) {
    var_5(TraceEvent,"coders/cube.c","ReadCUBEImage",0x91,"%s",var_2->filename);
  }
  if (var_6 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");
  }
  if (var_6->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"
                 );
  }
  var_30 = var_7(var_2,var_6);
  var_9 = var_8(var_2,var_30,ReadBinaryBlobMode,var_6);
  if (var_9 == var_4) {
    var_10(var_30);
    pIVar11 = (type_1 *)0x0;
    goto LAB_0033a403;
  }
  string = var_11("");
  *string = '\0';
  var_34 = 0;
  var_24 = 0;
  var_17 = (type_8 *)0x0;
  __s = (void *)0x0;
LAB_0033a25a:
  do {
    do {
      var_13 = var_12(var_30,string);
      if (var_13 == (char *)0x0) goto LAB_0033a378;
      q = string;
      var_14(string,&q,0x1000,token);
    } while ((token[0] == '#') || (token[0] == '\0'));
    var_16 = var_15(token,"LUT_1D_SIZE");
    if (((var_16 == 0) || (var_16 = var_15(token,"LUT_3D_SIZE"), var_16 == 0)) &&
       (var_17 == (type_8 *)0x0)) {
      var_14(q,&q,0x1000,value);
      var_24 = var_18(value,(char **)0x0,10);
      var_16 = var_15(token,"LUT_1D_SIZE");
      if (var_16 == 0) {
        var_22 = var_19((double)var_24,DAT_00406790);
        if ((double)((type_4)var_22 & var_20) < var_21) {
          var_22 = (double)((type_4)((double)(-(type_4)((double)(long)var_22 < var_22) &
                                            (type_4)var_44) + (double)(long)var_22) |
                           ~var_20 & (type_4)var_22);
        }
        if (var_23 <= var_22) {
          var_24 = (long)(var_22 - var_23) ^ 0x8000000000000000;
        }
        else {
          var_24 = (type_4)var_22;
        }
      }
      if (var_24 - 2 < 0xff) {
        var_17 = var_25(var_24 * var_24,var_24 * 0xc);
        if (var_17 != (type_8 *)0x0) {
          __s = var_26(var_17);
          var_27(__s,0,var_24 * 0xc * var_24 * var_24);
          goto LAB_0033a25a;
        }
        var_28(string);
        var_29
                  (var_6,"coders/cube.c","ReadCUBEImage",0xbe,ErrorException,
                   "MemoryAllocationFailed","`%s\'",var_2->filename);
        if (var_30 != (type_1 *)0x0) {
          var_31(var_30);
          var_10(var_30);
        }
      }
      else {
        var_28(string);
        var_29
                  (var_6,"coders/cube.c","ReadCUBEImage",0xb7,CorruptImageError,
                   "ImproperImageHeader","`%s\'",var_2->filename);
        if (var_30 != (type_1 *)0x0) {
          var_31(var_30);
          var_10(var_30);
        }
      }
      pIVar11 = (type_1 *)0x0;
      goto LAB_0033a403;
    }
    var_16 = var_15(token,"TITLE ");
    if (var_16 == 0) {
      var_14(q,&q,0x1000,value);
      var_32(var_30,"title",value,var_6);
      goto LAB_0033a25a;
    }
    if (var_24 != 0) {
      var_33 = var_24 * var_24 * var_24;
      if (var_33 - var_34 == 0 || var_33 < var_34) break;
      r = string;
      var_22 = var_35(string,&r);
      pfVar2 = (float *)((long)__s + var_34 * 0xc);
      *pfVar2 = (float)var_22;
      var_22 = var_35(r,&r);
      pfVar2[1] = (float)var_22;
      var_22 = var_35(r,&r);
      pfVar2[2] = (float)var_22;
      var_34 = var_34 + 1;
      goto LAB_0033a25a;
    }
  } while (0xd < (byte)(*string - 0x2cU));
LAB_0033a378:
  var_28(string);
  if (var_24 == 0) {
    if (var_17 != (type_8 *)0x0) {
      var_36(var_17);
    }
    var_29
              (var_6,"coders/cube.c","ReadCUBEImage",0xe0,CorruptImageError,
               "ImproperImageHeader","`%s\'",var_2->filename);
    pIVar11 = var_30;
    if (var_30 != (type_1 *)0x0) {
      var_31(var_30);
      var_10(var_30);
      pIVar11 = (type_1 *)0x0;
    }
    goto LAB_0033a403;
  }
  var_37 = var_2->scene;
  if (var_37 - 2 < 0xff) {
    var_38 = var_37 * var_37;
    var_71 = var_37 * var_38;
    var_30->var_38 = var_71;
    var_30->rows = var_71;
    var_9 = var_39(var_30,var_71,var_71,var_6);
    if (var_9 == var_4) {
LAB_0033a49e:
      var_36(var_17);
      pIVar11 = var_10(var_30);
      goto LAB_0033a403;
    }
    if (0 < (long)var_38) goto LAB_0033ab1a;
    var_36(var_17);
    var_31(var_30);
  }
  else {
    var_30->var_38 = 0x200;
    var_30->rows = 0x200;
    var_9 = var_39(var_30,0x200,0x200,var_6);
    if (var_9 == var_4) goto LAB_0033a49e;
    var_38 = 0x40;
    var_37 = 8;
LAB_0033ab1a:
    var_42 = 0;
    var_74 = 0;
    do {
      if (var_9 != var_4) {
        var_41 = 0;
        do {
          var_73 = var_9;
          if (var_9 != var_4) {
            var_43 = var_40
                                (var_30,(var_41 % var_37) * var_38,
                                 (var_41 / var_37) % var_38 + var_42,var_38,1,var_6);
            var_50 = DAT_0043b420;
            if (var_43 == (type_7 *)0x0) {
              var_73 = var_4;
            }
            else {
              var_45 = (double)var_38 - var_44;
              var_22 = DAT_003f9c68;
              if (0.0 <= var_45) {
                var_22 = var_44;
              }
              var_46 = (double)var_37 * (double)var_37 - var_44;
              var_58 = DAT_003f9c68;
              if (0.0 <= var_46) {
                var_58 = var_44;
              }
              var_71 = 0;
              do {
                var_69 = var_67;
                if (var_22 * var_45 < var_47) {
                  var_48 = var_22 / var_47;
                }
                else {
                  var_48 = var_44 / var_45;
                }
                var_49 = (double)var_24 - var_44;
                var_48 = (double)(long)var_71 * var_48 * var_49;
                var_53 = (float)var_48;
                var_52 = var_53;
                if ((float)((type_5)var_53 & var_50) < var_51) {
                  var_52 = (float)(int)var_48;
                  var_52 = (float)((type_5)(var_52 - (float)(-(type_5)(var_53 < var_52) &
                                                          (type_5)var_57)) |
                                  ~var_50 & (type_5)var_53);
                }
                var_56 = var_24 - 1;
                if (var_54 <= var_52) {
                  var_55 = (long)(var_52 - var_54) ^ 0x8000000000000000;
                }
                else {
                  var_55 = (type_4)var_52;
                }
                var_66 = var_52;
                if (var_55 != var_56) {
                  var_66 = var_52 + var_57;
                }
                if (var_58 * var_46 < var_47) {
                  var_48 = var_58 / var_47;
                }
                else {
                  var_48 = var_44 / var_46;
                }
                dVar25 = (double)(long)var_41 * var_48 * var_49;
                var_60 = (float)dVar25;
                var_59 = var_60;
                if ((float)((type_5)var_60 & var_50) < var_51) {
                  var_59 = (float)(int)dVar25;
                  var_59 = (float)((type_5)(var_59 - (float)(-(type_5)(var_60 < var_59) &
                                                          (type_5)var_57)) |
                                  ~var_50 & (type_5)var_60);
                }
                if (var_54 <= var_59) {
                  var_55 = (long)(var_59 - var_54) ^ 0x8000000000000000;
                }
                else {
                  var_55 = (type_4)var_59;
                }
                var_68 = var_59;
                if (var_56 != var_55) {
                  var_68 = var_59 + var_57;
                }
                var_49 = var_48 * (double)(long)var_74 * var_49;
                var_62 = (float)var_49;
                var_61 = var_62;
                if ((float)((type_5)var_62 & var_50) < var_51) {
                  var_61 = (float)(int)var_49;
                  var_61 = (float)((type_5)(var_61 - (float)(-(type_5)(var_62 < var_61) &
                                                          (type_5)var_57)) |
                                  ~var_50 & (type_5)var_62);
                }
                if (var_54 <= var_61) {
                  var_55 = (long)(var_61 - var_54) ^ 0x8000000000000000;
                }
                else {
                  var_55 = (type_4)var_61;
                }
                var_70 = var_61;
                if (var_56 != var_55) {
                  var_70 = var_61 + var_57;
                }
                var_63 = (float)var_24;
                var_64 = var_61 * var_63 * var_63;
                var_65 = var_64 + var_59 * var_63;
                pfVar2 = (float *)((long)__s + (long)(var_52 + var_65) * 0xc);
                var_43[var_30->channel_map->offset] =
                     ((var_53 - var_52) *
                      (*(float *)((long)__s + (long)(var_65 + var_66) * 0xc) - *pfVar2) + *pfVar2) *
                     var_67;
                var_43[var_30->channel_map[1].offset] =
                     ((var_60 - var_59) *
                      (*(float *)((long)__s + (long)(var_64 + var_68 * var_63 + var_52) * 0xc + 4) -
                      pfVar2[1]) + pfVar2[1]) * var_69;
                var_43[var_30->channel_map[2].offset] =
                     ((var_62 - var_61) *
                      (*(float *)((long)__s +
                                 (long)(var_52 + var_59 * var_63 + var_63 * var_70 * var_63) * 0xc +
                                 8) - pfVar2[2]) + pfVar2[2]) * var_69;
                var_43 = var_43 + var_30->number_channels;
                var_71 = var_71 + 1;
              } while (var_71 != var_38);
              var_73 = var_72(var_30,var_6);
              if (var_73 != var_4) {
                var_73 = var_9;
              }
            }
          }
          var_9 = var_73;
          var_41 = var_41 + 1;
        } while (var_41 != var_38);
      }
      var_74 = var_74 + 1;
      var_42 = var_42 + var_37;
    } while (var_74 != var_38);
    var_36(var_17);
    var_31(var_30);
    if (var_9 == var_4) {
      pIVar11 = var_10(var_30);
      goto LAB_0033a403;
    }
  }
  if (0 < (long)var_2->scene) {
    var_34 = 0;
    do {
      pIVar11 = var_75(var_30,0,0,MagickTrue,var_6);
      var_76(&var_30,pIVar11);
      var_34 = var_34 + 1;
    } while (var_34 < (long)var_2->scene);
  }
  pIVar11 = var_77(var_30);
LAB_0033a403:
  if (var_78 == *(long *)(var_1 + 0x28)) {
    return pIVar11;
  }
                    /* WARNING: Subroutine does not return */
  var_79();
}


(translation_unit (function_definition type: (sized_type_specifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) 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: (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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (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 (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (string_literal (string_content)) (number_literal) (pointer_expression argument: (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 (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (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 (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal) (identifier))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (character)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))) right: (identifier))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))))) right: (binary_expression left: (unary_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)) right: (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content)) (number_literal) (number_literal) (string_literal (string_content)) (string_literal (string_content) (escape_sequence)) (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content)) (number_literal) (number_literal) (string_literal (string_content)) (string_literal (string_content) (escape_sequence)) (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (identifier) (identifier)))) (goto_statement label: (statement_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: (identifier) right: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier))))) condition: (parenthesized_expression (binary_expression left: (number_literal) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content)) (number_literal) (number_literal) (string_literal (string_content)) (string_literal (string_content) (escape_sequence)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) alternative: (else_clause (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_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: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier)) (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier)) right: (identifier)) (identifier) (number_literal) (identifier))))) (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: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (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: (identifier))))) (expression_statement (assignment_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: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) right: (binary_expression left: (unary_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) right: (binary_expression left: (unary_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (unary_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (identifier) 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: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal)))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal)))))) right: (pointer_expression argument: (identifier))))) right: (pointer_expression argument: (identifier)))) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal)))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))) right: (identifier)))) right: (number_literal))) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal)))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))) right: (binary_expression left: (binary_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier))) right: (identifier))))) right: (number_literal))) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (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: (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (goto_statement label: (statement_identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (number_literal) (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

long MASKED(long param_1,long param_2)

{
  ulong uVar1;
  float *pfVar2;
  undefined4 uVar3;
  float fVar4;
  uint uVar5;
  int iVar6;
  int iVar7;
  char *pcVar8;
  long lVar9;
  undefined8 uVar10;
  ulong uVar11;
  ulong uVar12;
  ulong uVar13;
  void *__s;
  ulong uVar14;
  long lVar15;
  ulong uVar16;
  long in_FS_OFFSET;
  float fVar17;
  double dVar18;
  double dVar19;
  undefined1 auVar20 [16];
  float fVar21;
  double dVar22;
  float fVar23;
  float fVar24;
  double dVar25;
  float fVar26;
  float fVar27;
  float fVar28;
  float fVar29;
  undefined1 auVar30 [16];
  float fVar31;
  float fVar32;
  float fVar33;
  double dVar34;
  double dVar35;
  double dVar36;
  ulong local_20a8;
  long local_20a0;
  ulong local_2080;
  long local_2070;
  long local_2060;
  char *local_2058;
  char *local_2050;
  char local_2048 [4096];
  char local_1048 [4104];
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info != (const ImageInfo *) NULL","coders/cube.c",0x8e,"ReadCUBEImage");
  }
  if (*(long *)(param_1 + 0x3278) != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info->signature == MagickCoreSignature","coders/cube.c",0x8f,
                  "ReadCUBEImage");
  }
  if (*(int *)(param_1 + 0x3270) != 0) {
    LogMagickEvent(0x8000,"coders/cube.c","ReadCUBEImage",0x91,&DAT_0041fe36,param_1 + 0x2270);
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception != (ExceptionInfo *) NULL","coders/cube.c",0x93,"ReadCUBEImage");
  }
  if (*(long *)(param_2 + 0x30) != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception->signature == MagickCoreSignature","coders/cube.c",0x94,"ReadCUBEImage"
                 );
  }
  local_2060 = AcquireImage(param_1,param_2);
  iVar6 = OpenBlob(param_1,local_2060,2,param_2);
  if (iVar6 == 0) {
    DestroyImageList(local_2060);
    lVar15 = 0;
    goto LAB_0033a403;
  }
  pcVar8 = (char *)AcquireString(&DAT_00473ecb);
  *pcVar8 = '\0';
  lVar15 = 0;
  uVar13 = 0;
  local_20a0 = 0;
  __s = (void *)0x0;
LAB_0033a25a:
  do {
    do {
      lVar9 = ReadBlobString(local_2060,pcVar8);
      if (lVar9 == 0) goto LAB_0033a378;
      local_2058 = pcVar8;
      GetNextToken(pcVar8,&local_2058,0x1000,local_2048);
    } while ((local_2048[0] == '#') || (local_2048[0] == '\0'));
    iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");
    if (((iVar6 == 0) || (iVar6 = LocaleCompare(local_2048,"LUT_3D_SIZE"), iVar6 == 0)) &&
       (local_20a0 == 0)) {
      GetNextToken(local_2058,&local_2058,0x1000,local_1048);
      uVar13 = strtol(local_1048,(char **)0x0,10);
      iVar6 = LocaleCompare(local_2048,"LUT_1D_SIZE");
      if (iVar6 == 0) {
        dVar18 = pow((double)uVar13,DAT_00406790);
        if ((double)((ulong)dVar18 & DAT_003f9c70) < DAT_003f9c30) {
          dVar18 = (double)((ulong)((double)(-(ulong)((double)(long)dVar18 < dVar18) &
                                            (ulong)DAT_003f9608) + (double)(long)dVar18) |
                           ~DAT_003f9c70 & (ulong)dVar18);
        }
        if (DAT_003f9c40 <= dVar18) {
          uVar13 = (long)(dVar18 - DAT_003f9c40) ^ 0x8000000000000000;
        }
        else {
          uVar13 = (ulong)dVar18;
        }
      }
      if (uVar13 - 2 < 0xff) {
        local_20a0 = AcquireVirtualMemory(uVar13 * uVar13,uVar13 * 0xc);
        if (local_20a0 != 0) {
          __s = (void *)GetVirtualMemoryBlob(local_20a0);
          memset(__s,0,uVar13 * 0xc * uVar13 * uVar13);
          goto LAB_0033a25a;
        }
        DestroyString(pcVar8);
        ThrowMagickException
                  (param_2,"coders/cube.c","ReadCUBEImage",0xbe,400,"MemoryAllocationFailed","`%s\'"
                   ,param_1 + 0x2270);
        if (local_2060 != 0) {
          CloseBlob();
          DestroyImageList(local_2060);
        }
      }
      else {
        DestroyString(pcVar8);
        ThrowMagickException
                  (param_2,"coders/cube.c","ReadCUBEImage",0xb7,0x1a9,"ImproperImageHeader","`%s\'",
                   param_1 + 0x2270);
        if (local_2060 != 0) {
          CloseBlob();
          DestroyImageList(local_2060);
        }
      }
      lVar15 = 0;
      goto LAB_0033a403;
    }
    iVar6 = LocaleCompare(local_2048,"TITLE ");
    if (iVar6 == 0) {
      GetNextToken(local_2058,&local_2058,0x1000,local_1048);
      SetImageProperty(local_2060,"title",local_1048,param_2);
      goto LAB_0033a25a;
    }
    if (uVar13 != 0) {
      lVar9 = uVar13 * uVar13 * uVar13;
      if (lVar9 - lVar15 == 0 || lVar9 < lVar15) break;
      local_2050 = pcVar8;
      dVar18 = (double)InterpretLocaleValue(pcVar8,&local_2050);
      pfVar2 = (float *)((long)__s + lVar15 * 0xc);
      *pfVar2 = (float)dVar18;
      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);
      pfVar2[1] = (float)dVar18;
      dVar18 = (double)InterpretLocaleValue(local_2050,&local_2050);
      pfVar2[2] = (float)dVar18;
      lVar15 = lVar15 + 1;
      goto LAB_0033a25a;
    }
  } while (0xd < (byte)(*pcVar8 - 0x2cU));
LAB_0033a378:
  DestroyString(pcVar8);
  if (uVar13 == 0) {
    if (local_20a0 != 0) {
      RelinquishVirtualMemory(local_20a0);
    }
    ThrowMagickException
              (param_2,"coders/cube.c","ReadCUBEImage",0xe0,0x1a9,"ImproperImageHeader","`%s\'",
               param_1 + 0x2270);
    lVar15 = local_2060;
    if (local_2060 != 0) {
      CloseBlob(local_2060);
      DestroyImageList(local_2060);
      lVar15 = 0;
    }
    goto LAB_0033a403;
  }
  local_2080 = *(ulong *)(param_1 + 0x38);
  if (local_2080 - 2 < 0xff) {
    uVar16 = local_2080 * local_2080;
    lVar15 = local_2080 * uVar16;
    *(long *)(local_2060 + 0x20) = lVar15;
    *(long *)(local_2060 + 0x28) = lVar15;
    iVar6 = SetImageExtent(local_2060,lVar15,lVar15,param_2);
    if (iVar6 == 0) {
LAB_0033a49e:
      RelinquishVirtualMemory(local_20a0);
      lVar15 = DestroyImageList(local_2060);
      goto LAB_0033a403;
    }
    if (0 < (long)uVar16) goto LAB_0033ab1a;
    RelinquishVirtualMemory(local_20a0);
    CloseBlob(local_2060);
  }
  else {
    *(undefined8 *)(local_2060 + 0x20) = 0x200;
    *(undefined8 *)(local_2060 + 0x28) = 0x200;
    iVar6 = SetImageExtent(local_2060,0x200,0x200,param_2);
    if (iVar6 == 0) goto LAB_0033a49e;
    uVar16 = 0x40;
    local_2080 = 8;
LAB_0033ab1a:
    local_2070 = 0;
    local_20a8 = 0;
    do {
      if (iVar6 != 0) {
        uVar14 = 0;
        do {
          iVar7 = iVar6;
          if (iVar6 != 0) {
            lVar15 = QueueAuthenticPixels
                               (local_2060,(uVar14 % local_2080) * uVar16,
                                (uVar14 / local_2080) % uVar16 + local_2070,uVar16,1,param_2);
            uVar5 = DAT_0043b420;
            if (lVar15 == 0) {
              iVar7 = 0;
            }
            else {
              dVar35 = (double)uVar16 - DAT_003f9608;
              dVar18 = DAT_003f9c68;
              if (0.0 <= dVar35) {
                dVar18 = DAT_003f9608;
              }
              dVar34 = (double)local_2080 * (double)local_2080 - DAT_003f9608;
              dVar36 = DAT_003f9c68;
              if (0.0 <= dVar34) {
                dVar36 = DAT_003f9608;
              }
              uVar11 = 0;
              do {
                fVar4 = _DAT_003fa400;
                if (dVar18 * dVar35 < DAT_003f9600) {
                  dVar22 = dVar18 / DAT_003f9600;
                }
                else {
                  dVar22 = DAT_003f9608 / dVar35;
                }
                dVar19 = (double)uVar13 - DAT_003f9608;
                dVar22 = (double)(long)uVar11 * dVar22 * dVar19;
                fVar26 = (float)dVar22;
                fVar23 = fVar26;
                if ((float)((uint)fVar26 & uVar5) < _DAT_0043b430) {
                  fVar23 = (float)(int)dVar22;
                  fVar23 = (float)((uint)(fVar23 - (float)(-(uint)(fVar26 < fVar23) &
                                                          (uint)DAT_00404988)) |
                                  ~uVar5 & (uint)fVar26);
                }
                uVar1 = uVar13 - 1;
                if (DAT_00420e38 <= fVar23) {
                  uVar12 = (long)(fVar23 - DAT_00420e38) ^ 0x8000000000000000;
                }
                else {
                  uVar12 = (ulong)fVar23;
                }
                fVar33 = fVar23;
                if (uVar12 != uVar1) {
                  fVar33 = fVar23 + DAT_00404988;
                }
                if (dVar36 * dVar34 < DAT_003f9600) {
                  dVar22 = dVar36 / DAT_003f9600;
                }
                else {
                  dVar22 = DAT_003f9608 / dVar34;
                }
                dVar25 = (double)(long)uVar14 * dVar22 * dVar19;
                fVar24 = (float)dVar25;
                fVar29 = fVar24;
                if ((float)((uint)fVar24 & uVar5) < _DAT_0043b430) {
                  fVar29 = (float)(int)dVar25;
                  fVar29 = (float)((uint)(fVar29 - (float)(-(uint)(fVar24 < fVar29) &
                                                          (uint)DAT_00404988)) |
                                  ~uVar5 & (uint)fVar24);
                }
                if (DAT_00420e38 <= fVar29) {
                  uVar12 = (long)(fVar29 - DAT_00420e38) ^ 0x8000000000000000;
                }
                else {
                  uVar12 = (ulong)fVar29;
                }
                fVar27 = fVar29;
                if (uVar1 != uVar12) {
                  fVar27 = fVar29 + DAT_00404988;
                }
                dVar19 = dVar22 * (double)(long)local_20a8 * dVar19;
                uVar3 = (undefined4)((ulong)dVar19 >> 0x20);
                fVar21 = (float)dVar19;
                auVar20._4_4_ = uVar3;
                auVar20._0_4_ = fVar21;
                auVar20._8_8_ = 0;
                if ((float)((uint)fVar21 & uVar5) < _DAT_0043b430) {
                  auVar30._0_4_ = ~uVar5 & (uint)fVar21;
                  auVar30._4_4_ = uVar3;
                  auVar30._8_8_ = 0;
                  auVar20 = ZEXT416((uint)((float)(int)dVar19 -
                                          (float)(-(uint)(fVar21 < (float)(int)dVar19) &
                                                 (uint)DAT_00404988))) | auVar30;
                }
                fVar17 = auVar20._0_4_;
                if (DAT_00420e38 <= fVar17) {
                  uVar12 = (long)(fVar17 - DAT_00420e38) ^ 0x8000000000000000;
                }
                else {
                  uVar12 = (ulong)fVar17;
                }
                if (uVar1 != uVar12) {
                  auVar20._0_4_ = fVar17 + DAT_00404988;
                }
                fVar31 = (float)uVar13;
                fVar28 = fVar17 * fVar31 * fVar31;
                fVar32 = fVar28 + fVar29 * fVar31;
                pfVar2 = (float *)((long)__s + (long)(fVar23 + fVar32) * 0xc);
                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 8) * 4) =
                     ((fVar26 - fVar23) *
                      (*(float *)((long)__s + (long)(fVar32 + fVar33) * 0xc) - *pfVar2) + *pfVar2) *
                     _DAT_003fa400;
                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x18) * 4) =
                     ((fVar24 - fVar29) *
                      (*(float *)((long)__s + (long)(fVar28 + fVar27 * fVar31 + fVar23) * 0xc + 4) -
                      pfVar2[1]) + pfVar2[1]) * fVar4;
                *(float *)(lVar15 + *(long *)(*(long *)(local_2060 + 0x360) + 0x28) * 4) =
                     ((fVar21 - fVar17) *
                      (*(float *)((long)__s +
                                 (long)(fVar23 + fVar29 * fVar31 + fVar31 * auVar20._0_4_ * fVar31)
                                 * 0xc + 8) - pfVar2[2]) + pfVar2[2]) * fVar4;
                lVar15 = lVar15 + *(long *)(local_2060 + 0x340) * 4;
                uVar11 = uVar11 + 1;
              } while (uVar11 != uVar16);
              iVar7 = SyncAuthenticPixels(local_2060,param_2);
              if (iVar7 != 0) {
                iVar7 = iVar6;
              }
            }
          }
          iVar6 = iVar7;
          uVar14 = uVar14 + 1;
        } while (uVar14 != uVar16);
      }
      local_20a8 = local_20a8 + 1;
      local_2070 = local_2070 + local_2080;
    } while (local_20a8 != uVar16);
    RelinquishVirtualMemory(local_20a0);
    CloseBlob(local_2060);
    if (iVar6 == 0) {
      lVar15 = DestroyImageList(local_2060);
      goto LAB_0033a403;
    }
  }
  if (0 < *(long *)(param_1 + 0x38)) {
    lVar15 = 0;
    do {
      uVar10 = CloneImage(local_2060,0,0,1,param_2);
      AppendImageToList(&local_2060,uVar10);
      lVar15 = lVar15 + 1;
    } while (lVar15 < *(long *)(param_1 + 0x38));
  }
  lVar15 = GetFirstImageInList(local_2060);
LAB_0033a403:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return lVar15;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

