
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* 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 * ReadVIPSImage(ImageInfo *image_info,ExceptionInfo *exception)

{
  int iVar1;
  bool bVar2;
  ushort uVar3;
  Image *image;
  MagickBooleanType MVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  Quantum *pQVar9;
  ssize_t sVar10;
  uint uVar11;
  PixelChannelMap *pPVar12;
  uint uVar13;
  int in_GS_OFFSET;
  double dVar14;
  float fVar15;
  float fVar16;
  size_t line;
  char *tag;
  int local_106c;
  int local_1058;
  ushort local_103e;
  char *metadata;
  char buffer [4096];
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  if (image_info == (ImageInfo *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");
  }
  if (image_info->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,
                  "ReadVIPSImage");
  }
  if (image_info->debug != MagickFalse) {
    LogMagickEvent(TraceEvent,"coders/vips.c","ReadVIPSImage",0x18a,"%s",image_info->filename);
  }
  if (exception == (ExceptionInfo *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");
  }
  if (exception->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,
                  "ReadVIPSImage");
  }
  image = AcquireImage(image_info,exception);
  MVar4 = OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
  if (MVar4 == MagickFalse) {
    DestroyImageList(image);
    image = (Image *)0x0;
    goto LAB_0028b7fb;
  }
  uVar5 = ReadBlobLSBLong(image);
  if (uVar5 != 0x8f2a6b6) {
    if (uVar5 == 0xb6a6f208) {
      image->endian = MSBEndian;
      goto LAB_0028b739;
    }
    ThrowMagickException
              (exception,"coders/vips.c","ReadVIPSImage",0x19c,CorruptImageError,
               "ImproperImageHeader","`%s\'",image_info->filename);
    if (image != (Image *)0x0) goto LAB_0028b7e8;
    goto LAB_0028b7f9;
  }
  image->endian = LSBEndian;
LAB_0028b739:
  uVar5 = ReadBlobLong(image);
  image->columns = uVar5;
  uVar5 = ReadBlobLong(image);
  image->rows = uVar5;
  MVar4 = SetImageExtent(image,image->columns,uVar5,exception);
  if (MVar4 == MagickFalse) {
    image = DestroyImageList(image);
    goto LAB_0028b7fb;
  }
  uVar5 = ReadBlobLong(image);
  ReadBlobLong(image);
  uVar6 = ReadBlobLong(image);
  switch(uVar6) {
  case 0:
  case 1:
    image->depth = 8;
    break;
  case 2:
  case 3:
    image->depth = 0x10;
    break;
  case 4:
  case 5:
  case 6:
    image->depth = 0x20;
    break;
  default:
    tag = "Unsupported band format";
    line = 0x1bb;
    goto LAB_0028b9a2;
  case 8:
    image->depth = 0x40;
  }
  uVar7 = ReadBlobLong(image);
  uVar8 = ReadBlobLong(image);
  switch(uVar8) {
  default:
    tag = "Unsupported colorspace";
    line = 0x1e2;
    goto LAB_0028b9a2;
  case 1:
  case 0x1a:
    SetImageColorspace(image,GRAYColorspace,exception);
    if (uVar5 == 2) {
LAB_0028bb8c:
      image->alpha_trait = BlendPixelTrait;
    }
    break;
  case 0xf:
    SetImageColorspace(image,CMYKColorspace,exception);
    if (uVar5 == 5) {
LAB_0028bbbc:
      image->alpha_trait = BlendPixelTrait;
    }
    goto LAB_0028b9e4;
  case 0x11:
  case 0x19:
    SetImageColorspace(image,RGBColorspace,exception);
    if (uVar5 == 4) goto LAB_0028bb8c;
    break;
  case 0x16:
    SetImageColorspace(image,sRGBColorspace,exception);
    if (uVar5 == 4) goto LAB_0028bbbc;
LAB_0028b9e4:
    SetImageBackgroundColor(image,exception);
    image->units = PixelsPerCentimeterResolution;
    fVar15 = ReadBlobFloat(image);
    fVar16 = DAT_002aa50c;
    (image->resolution).x = (double)(fVar15 * DAT_002aa50c);
    fVar15 = ReadBlobFloat(image);
    (image->resolution).y = (double)(fVar16 * fVar15);
    ReadBlobLongLong(image);
    ReadBlobLongLong(image);
    ReadBlobLongLong(image);
    if (image_info->ping != MagickFalse) goto LAB_0028b7fb;
    goto LAB_0028ba52;
  }
  SetImageBackgroundColor(image,exception);
  image->units = PixelsPerCentimeterResolution;
  fVar15 = ReadBlobFloat(image);
  fVar16 = DAT_002aa50c;
  (image->resolution).x = (double)(fVar15 * DAT_002aa50c);
  fVar15 = ReadBlobFloat(image);
  (image->resolution).y = (double)(fVar16 * fVar15);
  ReadBlobLongLong(image);
  ReadBlobLongLong(image);
  ReadBlobLongLong(image);
  if (image_info->ping != MagickFalse) goto LAB_0028b7fb;
  if (uVar8 < 0x1b) {
LAB_0028ba52:
    uVar8 = 1 << ((byte)uVar8 & 0x1f);
    if (((uVar8 & 0x428002) == 0) &&
       ((((uVar8 & 0x6000000) == 0 || (8 < uVar6)) || ((1 << ((byte)uVar6 & 0x1f) & 0x17cU) == 0))))
    goto LAB_0028b983;
    if (4 < uVar5 - 1) {
      tag = "Unsupported number of channels";
      line = 500;
      goto LAB_0028b9a2;
    }
    if (uVar7 != 0) {
      tag = "Unsupported coding";
      line = 0x1f8;
      goto LAB_0028b9a2;
    }
    if (0 < (int)image->rows) {
      local_1058 = 0;
      do {
        pQVar9 = GetAuthenticPixels(image,0,local_1058,image->columns,1,exception);
        if (pQVar9 == (Quantum *)0x0) {
LAB_0028c2d0:
          bVar2 = false;
          goto LAB_0028c2d7;
        }
        if (0 < (int)image->columns) {
          uVar7 = uVar8 & 0x6000000;
          uVar13 = uVar8 & 0x408000;
          local_106c = 0;
          do {
            if (uVar13 != 0) {
              switch(uVar6) {
              case 0:
              case 1:
                uVar11 = ReadBlobByte(image);
                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;
                break;
              case 2:
              case 3:
                uVar3 = ReadBlobShort(image);
                dVar14 = (double)uVar3;
                break;
              case 4:
              case 5:
                uVar11 = ReadBlobLong(image);
                dVar14 = (double)uVar11 / (double)DAT_002a7fec;
                break;
              case 6:
                fVar16 = ReadBlobFloat(image);
                dVar14 = (double)fVar16 * (double)DAT_0029f710;
                break;
              default:
                pPVar12 = image->channel_map;
                pQVar9[pPVar12->offset] = 0.0;
                if (2 < uVar5) goto LAB_0028bd09;
                dVar14 = 0.0;
                goto LAB_0028bc37;
              case 8:
                dVar14 = ReadBlobDouble(image);
                dVar14 = dVar14 * (double)DAT_0029f710;
              }
              pPVar12 = image->channel_map;
              pQVar9[pPVar12->offset] = dVar14;
              if (uVar5 < 3) goto LAB_0028bc37;
LAB_0028bd09:
              switch(uVar6) {
              case 0:
              case 1:
                uVar11 = ReadBlobByte(image);
                fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;
                break;
              case 2:
              case 3:
                uVar3 = ReadBlobShort(image);
                fVar16 = (float)uVar3;
                break;
              case 4:
              case 5:
                uVar11 = ReadBlobLong(image);
                fVar16 = (float)uVar11 / DAT_002a7fec;
                break;
              case 6:
                fVar16 = ReadBlobFloat(image);
                fVar16 = fVar16 * DAT_0029f710;
                break;
              default:
                pQVar9[pPVar12[1].offset] = 0.0;
                goto LAB_0028be31;
              case 8:
                dVar14 = ReadBlobDouble(image);
                fVar16 = (float)dVar14 * DAT_0029f710;
              }
              pQVar9[image->channel_map[1].offset] = (double)fVar16;
LAB_0028be31:
              switch(uVar6) {
              case 0:
              case 1:
                goto _L310;
              case 2:
              case 3:
                goto _L312;
              case 4:
              case 5:
                uVar11 = ReadBlobLong(image);
                fVar16 = (float)uVar11 / DAT_002a7fec;
                break;
              case 6:
                fVar16 = ReadBlobFloat(image);
                fVar16 = fVar16 * DAT_0029f710;
                break;
              default:
                goto _L437;
              case 8:
                dVar14 = ReadBlobDouble(image);
                fVar16 = (float)dVar14 * DAT_0029f710;
              }
              goto LAB_0028be75;
            }
            if ((uVar8 & 0x20002) == 0) {
              if (uVar7 == 0) {
_L429:
                dVar14 = 0.0;
              }
              else {
                switch(uVar6) {
                default:
                  goto _L429;
                case 2:
                case 3:
                  uVar3 = ReadBlobShort(image);
                  uVar11 = (uint)uVar3;
                  break;
                case 4:
                case 5:
                  uVar11 = ReadBlobLong(image);
                  break;
                case 6:
                  fVar16 = ReadBlobFloat(image);
                  uVar11 = (uint)ROUND(fVar16);
                  break;
                case 8:
                  dVar14 = ReadBlobDouble(image);
                  uVar11 = (uint)ROUND(dVar14);
                }
                dVar14 = (double)(uVar11 & 0xffff);
              }
              goto LAB_0028bc22;
            }
            switch(uVar6) {
            case 0:
            case 1:
              uVar11 = ReadBlobByte(image);
              break;
            case 2:
            case 3:
              uVar3 = ReadBlobShort(image);
              uVar11 = (uint)uVar3;
              break;
            case 4:
            case 5:
              uVar11 = ReadBlobLong(image);
              break;
            case 6:
              fVar16 = ReadBlobFloat(image);
              local_103e = (ushort)ROUND(fVar16);
              goto LAB_0028c07a;
            default:
              goto _L429;
            case 8:
              dVar14 = ReadBlobDouble(image);
              local_103e = (ushort)ROUND(dVar14);
LAB_0028c07a:
              uVar11 = (uint)local_103e;
            }
            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;
LAB_0028bc22:
            pPVar12 = image->channel_map;
            pQVar9[pPVar12->offset] = dVar14;
            if (uVar5 < 3) {
LAB_0028bc37:
              pQVar9[pPVar12[1].offset] = dVar14;
              pQVar9[pPVar12[2].offset] = dVar14;
              if (uVar5 == 2) {
                if (uVar13 != 0) {
                  switch(uVar6) {
                  case 0:
                  case 1:
                    goto _L358;
                  case 2:
                  case 3:
                    goto _L360;
                  case 4:
                  case 5:
                    goto _L361;
                  case 6:
                    goto _L362;
                  default:
                    goto _L443;
                  case 8:
                    goto _L363;
                  }
                }
                if ((uVar8 & 0x20002) != 0) {
                  switch(uVar6) {
                  case 0:
                  case 1:
                    goto _L358;
                  case 2:
                  case 3:
                    goto _L348;
                  case 4:
                  case 5:
                    goto _L349;
                  case 6:
                    goto _L350;
                  default:
                    goto _L443;
                  case 8:
                    goto _L351;
                  }
                }
                if (uVar7 != 0) {
                  switch(uVar6) {
                  default:
                    break;
                  case 2:
                  case 3:
                    goto _L360;
                  case 4:
                  case 5:
                    goto _L355;
                  case 6:
                    goto _L356;
                  case 8:
                    goto _L357;
                  }
                }
                goto _L443;
              }
              goto LAB_0028bc60;
            }
            if ((uVar8 & 0x20002) == 0) {
              if (uVar7 == 0) {
_L435:
                dVar14 = 0.0;
              }
              else {
                switch(uVar6) {
                default:
                  goto _L435;
                case 2:
                case 3:
                  uVar3 = ReadBlobShort(image);
                  uVar11 = (uint)uVar3;
                  break;
                case 4:
                case 5:
                  uVar11 = ReadBlobLong(image);
                  break;
                case 6:
                  fVar16 = ReadBlobFloat(image);
                  uVar11 = (uint)ROUND(fVar16);
                  break;
                case 8:
                  dVar14 = ReadBlobDouble(image);
                  uVar11 = (uint)ROUND(dVar14);
                }
                dVar14 = (double)(uVar11 & 0xffff);
                pPVar12 = image->channel_map;
              }
              pQVar9[pPVar12[1].offset] = dVar14;
              if (uVar7 == 0) goto _L437;
              switch(uVar6) {
              default:
                goto _L437;
              case 2:
              case 3:
_L312:
                uVar3 = ReadBlobShort(image);
                uVar11 = (uint)uVar3;
                break;
              case 4:
              case 5:
                uVar11 = ReadBlobLong(image);
                break;
              case 6:
                fVar16 = ReadBlobFloat(image);
                uVar11 = (uint)ROUND(fVar16);
                break;
              case 8:
                dVar14 = ReadBlobDouble(image);
                uVar11 = (uint)ROUND(dVar14);
              }
              fVar16 = (float)(uVar11 & 0xffff);
              goto LAB_0028be75;
            }
            switch(uVar6) {
            case 0:
            case 1:
              uVar11 = ReadBlobByte(image);
              break;
            case 2:
            case 3:
              uVar3 = ReadBlobShort(image);
              uVar11 = (uint)uVar3;
              break;
            case 4:
            case 5:
              uVar11 = ReadBlobLong(image);
              break;
            case 6:
              fVar16 = ReadBlobFloat(image);
              local_103e = (ushort)ROUND(fVar16);
              goto LAB_0028c4c8;
            default:
              fVar16 = 0.0;
              goto LAB_0028c4eb;
            case 8:
              dVar14 = ReadBlobDouble(image);
              local_103e = (ushort)ROUND(dVar14);
LAB_0028c4c8:
              uVar11 = (uint)local_103e;
            }
            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;
            pPVar12 = image->channel_map;
LAB_0028c4eb:
            pQVar9[pPVar12[1].offset] = (double)fVar16;
            switch(uVar6) {
            case 0:
            case 1:
_L310:
              uVar11 = ReadBlobByte(image);
              break;
            case 2:
            case 3:
              uVar3 = ReadBlobShort(image);
              uVar11 = (uint)uVar3;
              break;
            case 4:
            case 5:
              uVar11 = ReadBlobLong(image);
              break;
            case 6:
              fVar16 = ReadBlobFloat(image);
              uVar11 = (uint)(ushort)(short)ROUND(fVar16);
              break;
            default:
_L437:
              fVar16 = 0.0;
              goto LAB_0028be75;
            case 8:
              dVar14 = ReadBlobDouble(image);
              uVar11 = (uint)(ushort)(short)ROUND(dVar14);
            }
            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;
LAB_0028be75:
            pPVar12 = image->channel_map;
            pQVar9[pPVar12[2].offset] = (double)fVar16;
            if (uVar5 == 4) {
              if (image->colorspace == CMYKColorspace) {
                if (uVar13 == 0) {
                  if ((uVar8 & 0x20002) == 0) {
                    if (uVar7 == 0) {
_L440:
                      fVar16 = 0.0;
                    }
                    else {
                      switch(uVar6) {
                      default:
                        goto _L440;
                      case 2:
                      case 3:
                        goto _L337;
                      case 4:
                      case 5:
                        uVar11 = ReadBlobLong(image);
                        break;
                      case 6:
                        fVar16 = ReadBlobFloat(image);
                        uVar11 = (uint)ROUND(fVar16);
                        break;
                      case 8:
                        dVar14 = ReadBlobDouble(image);
                        uVar11 = (uint)ROUND(dVar14);
                      }
LAB_0028cafc:
                      fVar16 = (float)(uVar11 & 0xffff);
                      pPVar12 = image->channel_map;
                    }
                  }
                  else {
                    switch(uVar6) {
                    case 0:
                    case 1:
                      goto _L335;
                    case 2:
                    case 3:
                      uVar3 = ReadBlobShort(image);
                      uVar11 = (uint)uVar3;
                      break;
                    case 4:
                    case 5:
                      uVar11 = ReadBlobLong(image);
                      break;
                    case 6:
                      fVar16 = ReadBlobFloat(image);
                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);
                      break;
                    default:
                      goto _L440;
                    case 8:
                      dVar14 = ReadBlobDouble(image);
                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);
                    }
LAB_0028cabb:
                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;
                    pPVar12 = image->channel_map;
                  }
                }
                else {
                  switch(uVar6) {
                  case 0:
                  case 1:
_L335:
                    uVar11 = ReadBlobByte(image);
                    goto LAB_0028cabb;
                  case 2:
                  case 3:
_L337:
                    uVar3 = ReadBlobShort(image);
                    uVar11 = (uint)uVar3;
                    goto LAB_0028cafc;
                  case 4:
                  case 5:
                    uVar11 = ReadBlobLong(image);
                    fVar16 = (float)uVar11 / DAT_002a7fec;
                    pPVar12 = image->channel_map;
                    break;
                  case 6:
                    fVar16 = ReadBlobFloat(image);
                    pPVar12 = image->channel_map;
                    fVar16 = fVar16 * DAT_0029f710;
                    break;
                  default:
                    goto _L440;
                  case 8:
                    dVar14 = ReadBlobDouble(image);
                    pPVar12 = image->channel_map;
                    fVar16 = (float)dVar14 * DAT_0029f710;
                  }
                }
                if (pPVar12[5].traits != UndefinedPixelTrait) {
                  pQVar9[pPVar12[5].offset] = (double)fVar16;
                }
                goto LAB_0028bc60;
              }
              if (uVar13 == 0) {
                if ((uVar8 & 0x20002) == 0) {
                  if (uVar7 == 0) {
_L443:
                    dVar14 = 0.0;
                  }
                  else {
                    switch(uVar6) {
                    default:
                      goto _L443;
                    case 2:
                    case 3:
                      goto _L360;
                    case 4:
                    case 5:
_L355:
                      uVar11 = ReadBlobLong(image);
                      break;
                    case 6:
_L356:
                      fVar16 = ReadBlobFloat(image);
                      uVar11 = (uint)ROUND(fVar16);
                      break;
                    case 8:
_L357:
                      dVar14 = ReadBlobDouble(image);
                      uVar11 = (uint)ROUND(dVar14);
                    }
LAB_0028c63d:
                    dVar14 = (double)(uVar11 & 0xffff);
                    pPVar12 = image->channel_map;
                  }
                }
                else {
                  switch(uVar6) {
                  case 0:
                  case 1:
                    goto _L358;
                  case 2:
                  case 3:
_L348:
                    uVar3 = ReadBlobShort(image);
                    uVar11 = (uint)uVar3;
                    break;
                  case 4:
                  case 5:
_L349:
                    uVar11 = ReadBlobLong(image);
                    break;
                  case 6:
_L350:
                    fVar16 = ReadBlobFloat(image);
                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);
                    break;
                  default:
                    goto _L443;
                  case 8:
_L351:
                    dVar14 = ReadBlobDouble(image);
                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);
                  }
LAB_0028c60d:
                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;
                  pPVar12 = image->channel_map;
                }
              }
              else {
                switch(uVar6) {
                case 0:
                case 1:
_L358:
                  uVar11 = ReadBlobByte(image);
                  goto LAB_0028c60d;
                case 2:
                case 3:
_L360:
                  uVar3 = ReadBlobShort(image);
                  uVar11 = (uint)uVar3;
                  goto LAB_0028c63d;
                case 4:
                case 5:
_L361:
                  uVar11 = ReadBlobLong(image);
                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;
                  pPVar12 = image->channel_map;
                  break;
                case 6:
_L362:
                  fVar16 = ReadBlobFloat(image);
                  pPVar12 = image->channel_map;
                  dVar14 = (double)fVar16 * (double)DAT_0029f710;
                  break;
                default:
                  goto _L443;
                case 8:
_L363:
                  dVar14 = ReadBlobDouble(image);
                  pPVar12 = image->channel_map;
                  dVar14 = dVar14 * (double)DAT_0029f710;
                }
              }
              goto LAB_0028c1d8;
            }
            if (uVar5 != 5) goto LAB_0028bc60;
            if (uVar13 != 0) {
              switch(uVar6) {
              case 0:
              case 1:
                uVar11 = ReadBlobByte(image);
                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;
                break;
              case 2:
              case 3:
                uVar3 = ReadBlobShort(image);
                dVar14 = (double)uVar3;
                break;
              case 4:
              case 5:
                uVar11 = ReadBlobLong(image);
                dVar14 = (double)uVar11 / (double)DAT_002a7fec;
                break;
              case 6:
                fVar16 = ReadBlobFloat(image);
                pPVar12 = image->channel_map;
                dVar14 = (double)fVar16 * (double)DAT_0029f710;
                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;
                goto _L391;
              default:
                if (pPVar12[5].traits != UndefinedPixelTrait) {
                  dVar14 = 0.0;
                  goto LAB_0028cba5;
                }
                goto LAB_0028c951;
              case 8:
                dVar14 = ReadBlobDouble(image);
                pPVar12 = image->channel_map;
                dVar14 = dVar14 * (double)DAT_0029f710;
                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;
                goto _L392;
              }
              pPVar12 = image->channel_map;
              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;
              goto LAB_0028c951;
            }
            if ((uVar8 & 0x20002) == 0) {
              if (uVar7 == 0) {
_L445:
                dVar14 = 0.0;
              }
              else {
                switch(uVar6) {
                default:
                  goto _L445;
                case 2:
                case 3:
                  uVar3 = ReadBlobShort(image);
                  uVar11 = (uint)uVar3;
                  break;
                case 4:
                case 5:
                  uVar11 = ReadBlobLong(image);
                  break;
                case 6:
                  fVar16 = ReadBlobFloat(image);
                  uVar11 = (uint)ROUND(fVar16);
                  break;
                case 8:
                  dVar14 = ReadBlobDouble(image);
                  uVar11 = (uint)ROUND(dVar14);
                }
                dVar14 = (double)(uVar11 & 0xffff);
                pPVar12 = image->channel_map;
              }
              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;
              goto LAB_0028cbc9;
            }
            switch(uVar6) {
            case 0:
            case 1:
              uVar11 = ReadBlobByte(image);
              break;
            case 2:
            case 3:
              uVar3 = ReadBlobShort(image);
              uVar11 = (uint)uVar3;
              break;
            case 4:
            case 5:
              uVar11 = ReadBlobLong(image);
              break;
            case 6:
              fVar16 = ReadBlobFloat(image);
              local_103e = (ushort)ROUND(fVar16);
              goto LAB_0028cda5;
            default:
              dVar14 = 0.0;
              goto LAB_0028cdc8;
            case 8:
              dVar14 = ReadBlobDouble(image);
              local_103e = (ushort)ROUND(dVar14);
LAB_0028cda5:
              uVar11 = (uint)local_103e;
            }
            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;
            pPVar12 = image->channel_map;
LAB_0028cdc8:
            if (pPVar12[5].traits == UndefinedPixelTrait) {
LAB_0028cdd5:
              switch(uVar6) {
              case 0:
              case 1:
_L409:
                uVar11 = ReadBlobByte(image);
                break;
              case 2:
              case 3:
                uVar3 = ReadBlobShort(image);
                uVar11 = (uint)uVar3;
                break;
              case 4:
              case 5:
                uVar11 = ReadBlobLong(image);
                break;
              case 6:
                fVar16 = ReadBlobFloat(image);
                uVar11 = (uint)(ushort)(short)ROUND(fVar16);
                break;
              default:
                goto _L448;
              case 8:
                dVar14 = ReadBlobDouble(image);
                uVar11 = (uint)(ushort)(short)ROUND(dVar14);
              }
              dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;
            }
            else {
LAB_0028cba5:
              pQVar9[pPVar12[5].offset] = dVar14;
              if (uVar13 == 0) {
                if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;
LAB_0028cbc9:
                if (uVar7 == 0) {
_L448:
                  dVar14 = 0.0;
                }
                else {
                  switch(uVar6) {
                  default:
                    goto _L448;
                  case 2:
                  case 3:
                    goto _L411;
                  case 4:
                  case 5:
                    uVar11 = ReadBlobLong(image);
                    break;
                  case 6:
                    fVar16 = ReadBlobFloat(image);
                    uVar11 = (uint)ROUND(fVar16);
                    break;
                  case 8:
                    dVar14 = ReadBlobDouble(image);
                    uVar11 = (uint)ROUND(dVar14);
                  }
LAB_0028c9a2:
                  dVar14 = (double)(uVar11 & 0xffff);
                }
              }
              else {
LAB_0028c951:
                switch(uVar6) {
                case 0:
                case 1:
                  goto _L409;
                case 2:
                case 3:
_L411:
                  uVar3 = ReadBlobShort(image);
                  uVar11 = (uint)uVar3;
                  goto LAB_0028c9a2;
                case 4:
                case 5:
                  uVar11 = ReadBlobLong(image);
                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;
                  break;
                case 6:
_L391:
                  fVar16 = ReadBlobFloat(image);
                  dVar14 = (double)fVar16 * (double)DAT_0029f710;
                  break;
                default:
                  goto _L448;
                case 8:
_L392:
                  dVar14 = ReadBlobDouble(image);
                  dVar14 = dVar14 * (double)DAT_0029f710;
                }
              }
            }
            pPVar12 = image->channel_map;
LAB_0028c1d8:
            if (pPVar12[4].traits != UndefinedPixelTrait) {
              pQVar9[pPVar12[4].offset] = dVar14;
            }
LAB_0028bc60:
            local_106c = local_106c + 1;
            pQVar9 = pQVar9 + image->number_channels;
          } while (local_106c < (int)image->columns);
        }
        MVar4 = SyncAuthenticPixels(image,exception);
        if (MVar4 == MagickFalse) goto LAB_0028c2d0;
        local_1058 = local_1058 + 1;
      } while (local_1058 < (int)image->rows);
    }
    bVar2 = true;
LAB_0028c2d7:
    metadata = (char *)0x0;
    while (sVar10 = ReadBlob(image,0xfff,buffer), sVar10 != 0) {
      buffer[sVar10] = '\0';
      if (metadata == (char *)0x0) {
        metadata = ConstantString(buffer);
      }
      else {
        ConcatenateString(&metadata,buffer);
      }
    }
    if (metadata != (char *)0x0) {
      SetImageProperty(image,"vips:metadata",metadata,exception);
      metadata = (char *)RelinquishMagickMemory(metadata);
    }
    CloseBlob(image);
    if (bVar2) goto LAB_0028b7fb;
  }
  else {
LAB_0028b983:
    tag = "Unsupported combination of band format and colorspace";
    line = 0x1f2;
LAB_0028b9a2:
    ThrowMagickException
              (exception,"coders/vips.c","ReadVIPSImage",line,CoderError,tag,"`%s\'",
               image_info->filename);
LAB_0028b7e8:
    CloseBlob(image);
    DestroyImageList(image);
  }
LAB_0028b7f9:
  image = (Image *)0x0;
LAB_0028b7fb:
  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {
    return image;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int FUN_0028b670(int param_1,int param_2)

{
  double dVar1;
  float fVar2;
  bool bVar3;
  byte bVar4;
  ushort uVar5;
  int iVar6;
  int iVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  int iVar14;
  uint uVar15;
  int in_GS_OFFSET;
  longdouble lVar16;
  char *pcVar17;
  int local_106c;
  int iStack_1058;
  ushort uStack_103e;
  uint uStack_103c;
  int iStack_1024;
  undefined1 auStack_1020 [4096];
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x28b679;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");
  }
  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,
                  "ReadVIPSImage");
  }
  if (*(int *)(param_1 + 0x31f0) != 0) {
    LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0);
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");
  }
  if (*(int *)(param_2 + 0x1c) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,
                  "ReadVIPSImage");
  }
  iVar6 = AcquireImage(param_1,param_2);
  iVar7 = OpenBlob(param_1,iVar6,2,param_2);
  if (iVar7 == 0) {
    DestroyImageList(iVar6);
    iVar6 = 0;
    goto LAB_0028b7fb;
  }
  iVar7 = ReadBlobLSBLong(iVar6);
  if (iVar7 != 0x8f2a6b6) {
    if (iVar7 == -0x49590df8) {
      *(undefined4 *)(iVar6 + 0x234) = 2;
      goto LAB_0028b739;
    }
    ThrowMagickException
              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",
               param_1 + 0x21f0);
    if (iVar6 != 0) goto LAB_0028b7e8;
    goto LAB_0028b7f9;
  }
  *(undefined4 *)(iVar6 + 0x234) = 1;
LAB_0028b739:
  uVar8 = ReadBlobLong(iVar6);
  *(undefined4 *)(iVar6 + 0x18) = uVar8;
  uVar8 = ReadBlobLong(iVar6);
  *(undefined4 *)(iVar6 + 0x1c) = uVar8;
  iVar7 = SetImageExtent(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2);
  if (iVar7 == 0) {
    iVar6 = DestroyImageList(iVar6);
    goto LAB_0028b7fb;
  }
  uVar9 = ReadBlobLong(iVar6);
  ReadBlobLong(iVar6);
  uVar10 = ReadBlobLong(iVar6);
  switch(uVar10) {
  case 0:
  case 1:
    *(undefined4 *)(iVar6 + 0x20) = 8;
    break;
  case 2:
  case 3:
    *(undefined4 *)(iVar6 + 0x20) = 0x10;
    break;
  case 4:
  case 5:
  case 6:
    *(undefined4 *)(iVar6 + 0x20) = 0x20;
    break;
  default:
    pcVar17 = "Unsupported band format";
    uVar8 = 0x1bb;
    goto LAB_0028b9a2;
  case 8:
    *(undefined4 *)(iVar6 + 0x20) = 0x40;
  }
  iVar7 = ReadBlobLong(iVar6);
  uVar11 = ReadBlobLong(iVar6);
  switch(uVar11) {
  default:
    pcVar17 = "Unsupported colorspace";
    uVar8 = 0x1e2;
    goto LAB_0028b9a2;
  case 1:
  case 0x1a:
    SetImageColorspace(iVar6,3,param_2);
    if (uVar9 == 2) {
code_r0x0028bb8c:
      *(undefined4 *)(iVar6 + 0x294) = 4;
    }
    break;
  case 0xf:
    SetImageColorspace(iVar6,2,param_2);
    if (uVar9 == 5) {
code_r0x0028bbbc:
      *(undefined4 *)(iVar6 + 0x294) = 4;
    }
    goto code_r0x0028b9e4;
  case 0x11:
  case 0x19:
    SetImageColorspace(iVar6,0x15,param_2);
    if (uVar9 == 4) goto code_r0x0028bb8c;
    break;
  case 0x16:
    SetImageColorspace(iVar6,0x17,param_2);
    if (uVar9 == 4) goto code_r0x0028bbbc;
code_r0x0028b9e4:
    SetImageBackgroundColor(iVar6,param_2);
    *(undefined4 *)(iVar6 + 0x1dc) = 2;
    lVar16 = (longdouble)ReadBlobFloat(iVar6);
    fVar2 = DAT_002aa50c;
    *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);
    lVar16 = (longdouble)ReadBlobFloat(iVar6);
    *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);
    ReadBlobLongLong(iVar6);
    ReadBlobLongLong(iVar6);
    ReadBlobLongLong(iVar6);
    if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;
    goto code_r0x0028ba52;
  }
  SetImageBackgroundColor(iVar6,param_2);
  *(undefined4 *)(iVar6 + 0x1dc) = 2;
  lVar16 = (longdouble)ReadBlobFloat(iVar6);
  fVar2 = DAT_002aa50c;
  *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);
  lVar16 = (longdouble)ReadBlobFloat(iVar6);
  *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);
  ReadBlobLongLong(iVar6);
  ReadBlobLongLong(iVar6);
  ReadBlobLongLong(iVar6);
  if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;
  if (uVar11 < 0x1b) {
code_r0x0028ba52:
    uVar11 = 1 << ((byte)uVar11 & 0x1f);
    if (((uVar11 & 0x428002) == 0) &&
       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)
        ))) goto code_r0x0028b983;
    if (4 < uVar9 - 1) {
      pcVar17 = "Unsupported number of channels";
      uVar8 = 500;
      goto LAB_0028b9a2;
    }
    if (iVar7 != 0) {
      pcVar17 = "Unsupported coding";
      uVar8 = 0x1f8;
      goto LAB_0028b9a2;
    }
    if (0 < *(int *)(iVar6 + 0x1c)) {
      iStack_1058 = 0;
      do {
        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);
        if (iVar7 == 0) {
code_r0x0028c2d0:
          bVar3 = false;
          goto code_r0x0028c2d7;
        }
        if (0 < *(int *)(iVar6 + 0x18)) {
          uVar12 = uVar11 & 0x6000000;
          uVar15 = uVar11 & 0x408000;
          local_106c = 0;
          do {
            if (uVar15 != 0) {
              switch(uVar10) {
              case 0:
              case 1:
                bVar4 = ReadBlobByte(iVar6);
                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;
                break;
              case 2:
              case 3:
                uVar5 = ReadBlobShort(iVar6);
                lVar16 = (longdouble)uVar5;
                break;
              case 4:
              case 5:
                uVar13 = ReadBlobLong(iVar6);
                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;
                break;
              case 6:
                lVar16 = (longdouble)ReadBlobFloat(iVar6);
                lVar16 = lVar16 * (longdouble)DAT_0029f710;
                break;
              default:
                iVar14 = *(int *)(iVar6 + 0x2a8);
                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;
                if (2 < uVar9) goto code_r0x0028bd09;
                lVar16 = (longdouble)0;
                goto code_r0x0028bc37;
              case 8:
                lVar16 = (longdouble)ReadBlobDouble(iVar6);
                lVar16 = lVar16 * (longdouble)DAT_0029f710;
              }
              iVar14 = *(int *)(iVar6 + 0x2a8);
              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;
              if (uVar9 < 3) goto code_r0x0028bc37;
code_r0x0028bd09:
              switch(uVar10) {
              case 0:
              case 1:
                bVar4 = ReadBlobByte(iVar6);
                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;
                break;
              case 2:
              case 3:
                uVar5 = ReadBlobShort(iVar6);
                lVar16 = (longdouble)uVar5;
                break;
              case 4:
              case 5:
                uVar13 = ReadBlobLong(iVar6);
                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;
                break;
              case 6:
                lVar16 = (longdouble)ReadBlobFloat(iVar6);
                lVar16 = lVar16 * (longdouble)DAT_0029f710;
                break;
              default:
                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;
                goto code_r0x0028be31;
              case 8:
                lVar16 = (longdouble)ReadBlobDouble(iVar6);
                lVar16 = lVar16 * (longdouble)DAT_0029f710;
              }
              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;
code_r0x0028be31:
              switch(uVar10) {
              case 0:
              case 1:
                goto code_r0x0028be50;
              case 2:
              case 3:
                goto code_r0x0028bed8;
              case 4:
              case 5:
                uVar13 = ReadBlobLong(iVar6);
                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;
                break;
              case 6:
                lVar16 = (longdouble)ReadBlobFloat(iVar6);
                lVar16 = lVar16 * (longdouble)DAT_0029f710;
                break;
              default:
                goto code_r0x0028c020;
              case 8:
                lVar16 = (longdouble)ReadBlobDouble(iVar6);
                lVar16 = lVar16 * (longdouble)DAT_0029f710;
              }
              goto code_r0x0028be75;
            }
            if ((uVar11 & 0x20002) == 0) {
              if (uVar12 == 0) {
code_r0x0028bc20:
                lVar16 = (longdouble)0;
                goto code_r0x0028bc22;
              }
              switch(uVar10) {
              default:
                goto code_r0x0028bc20;
              case 2:
              case 3:
                uStack_103c = ReadBlobShort(iVar6);
                break;
              case 4:
              case 5:
                uStack_103c = ReadBlobLong(iVar6);
                break;
              case 6:
                lVar16 = (longdouble)ReadBlobFloat(iVar6);
                goto code_r0x0028c3ba;
              case 8:
                lVar16 = (longdouble)ReadBlobDouble(iVar6);
code_r0x0028c3ba:
                uStack_103c = (uint)ROUND(lVar16);
              }
              lVar16 = (longdouble)(uStack_103c & 0xffff);
              goto code_r0x0028bc22;
            }
            switch(uVar10) {
            case 0:
            case 1:
              uStack_103e = ReadBlobByte(iVar6);
              break;
            case 2:
            case 3:
              uStack_103e = ReadBlobShort(iVar6);
              break;
            case 4:
            case 5:
              uStack_103e = ReadBlobLong(iVar6);
              break;
            case 6:
              lVar16 = (longdouble)ReadBlobFloat(iVar6);
              goto code_r0x0028c07a;
            default:
              goto code_r0x0028bc20;
            case 8:
              lVar16 = (longdouble)ReadBlobDouble(iVar6);
code_r0x0028c07a:
              uStack_103e = (ushort)ROUND(lVar16);
            }
            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;
code_r0x0028bc22:
            iVar14 = *(int *)(iVar6 + 0x2a8);
            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;
            if (uVar9 < 3) {
code_r0x0028bc37:
              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;
              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;
              if (uVar9 == 2) {
                if (uVar15 != 0) {
                  switch(uVar10) {
                  case 0:
                  case 1:
                    goto code_r0x0028c600;
                  case 2:
                  case 3:
                    goto code_r0x0028c630;
                  case 4:
                  case 5:
                    goto code_r0x0028c6a4;
                  case 6:
                    goto code_r0x0028c67f;
                  default:
                    goto code_r0x0028c1d2;
                  case 8:
                    goto code_r0x0028c65a;
                  }
                }
                if ((uVar11 & 0x20002) != 0) {
                  switch(uVar10) {
                  case 0:
                  case 1:
                    goto code_r0x0028c600;
                  case 2:
                  case 3:
                    goto code_r0x0028c7e6;
                  case 4:
                  case 5:
                    goto code_r0x0028c82c;
                  case 6:
                    goto code_r0x0028c7f8;
                  default:
                    goto code_r0x0028c1d2;
                  case 8:
                    goto code_r0x0028c83e;
                  }
                }
                if (uVar12 != 0) {
                  switch(uVar10) {
                  default:
                    break;
                  case 2:
                  case 3:
                    goto code_r0x0028c630;
                  case 4:
                  case 5:
                    goto code_r0x0028ca3d;
                  case 6:
                    goto code_r0x0028ca4f;
                  case 8:
                    goto code_r0x0028ca82;
                  }
                }
                goto code_r0x0028c1d2;
              }
              goto code_r0x0028bc60;
            }
            if ((uVar11 & 0x20002) == 0) {
              if (uVar12 == 0) {
code_r0x0028c180:
                dVar1 = 0.0;
                goto code_r0x0028c182;
              }
              switch(uVar10) {
              default:
                goto code_r0x0028c180;
              case 2:
              case 3:
                uStack_103c = ReadBlobShort(iVar6);
                break;
              case 4:
              case 5:
                uStack_103c = ReadBlobLong(iVar6);
                break;
              case 6:
                lVar16 = (longdouble)ReadBlobFloat(iVar6);
                goto code_r0x0028c774;
              case 8:
                lVar16 = (longdouble)ReadBlobDouble(iVar6);
code_r0x0028c774:
                uStack_103c = (uint)ROUND(lVar16);
              }
              dVar1 = (double)(uStack_103c & 0xffff);
              iVar14 = *(int *)(iVar6 + 0x2a8);
code_r0x0028c182:
              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;
              if (uVar12 == 0) goto code_r0x0028c020;
              switch(uVar10) {
              default:
                goto code_r0x0028c020;
              case 2:
              case 3:
code_r0x0028bed8:
                uStack_103c = ReadBlobShort(iVar6);
                break;
              case 4:
              case 5:
                uStack_103c = ReadBlobLong(iVar6);
                break;
              case 6:
                lVar16 = (longdouble)ReadBlobFloat(iVar6);
                goto code_r0x0028c703;
              case 8:
                lVar16 = (longdouble)ReadBlobDouble(iVar6);
code_r0x0028c703:
                uStack_103c = (uint)ROUND(lVar16);
              }
              lVar16 = (longdouble)(uStack_103c & 0xffff);
              goto code_r0x0028be75;
            }
            switch(uVar10) {
            case 0:
            case 1:
              uStack_103e = ReadBlobByte(iVar6);
              break;
            case 2:
            case 3:
              uStack_103e = ReadBlobShort(iVar6);
              break;
            case 4:
            case 5:
              uStack_103e = ReadBlobLong(iVar6);
              break;
            case 6:
              lVar16 = (longdouble)ReadBlobFloat(iVar6);
              goto code_r0x0028c4c8;
            default:
              fVar2 = 0.0;
              goto code_r0x0028c4eb;
            case 8:
              lVar16 = (longdouble)ReadBlobDouble(iVar6);
code_r0x0028c4c8:
              uStack_103e = (ushort)ROUND(lVar16);
            }
            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;
            iVar14 = *(int *)(iVar6 + 0x2a8);
code_r0x0028c4eb:
            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;
            switch(uVar10) {
            case 0:
            case 1:
code_r0x0028be50:
              uVar5 = ReadBlobByte(iVar6);
              break;
            case 2:
            case 3:
              uVar5 = ReadBlobShort(iVar6);
              break;
            case 4:
            case 5:
              uVar5 = ReadBlobLong(iVar6);
              break;
            case 6:
              lVar16 = (longdouble)ReadBlobFloat(iVar6);
              uVar5 = (ushort)ROUND(lVar16);
              break;
            default:
code_r0x0028c020:
              lVar16 = (longdouble)0;
              goto code_r0x0028be75;
            case 8:
              lVar16 = (longdouble)ReadBlobDouble(iVar6);
              uVar5 = (ushort)ROUND(lVar16);
            }
            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;
code_r0x0028be75:
            iVar14 = *(int *)(iVar6 + 0x2a8);
            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;
            if (uVar9 == 4) {
              if (*(int *)(iVar6 + 4) == 2) {
                if (uVar15 == 0) {
                  if ((uVar11 & 0x20002) != 0) {
                    switch(uVar10) {
                    case 0:
                    case 1:
                      goto code_r0x0028caae;
                    case 2:
                    case 3:
                      uVar5 = ReadBlobShort(iVar6);
                      break;
                    case 4:
                    case 5:
                      uVar5 = ReadBlobLong(iVar6);
                      break;
                    case 6:
                      lVar16 = (longdouble)ReadBlobFloat(iVar6);
                      uVar5 = (ushort)ROUND(lVar16);
                      break;
                    default:
                      goto code_r0x0028cbef;
                    case 8:
                      lVar16 = (longdouble)ReadBlobDouble(iVar6);
                      uVar5 = (ushort)ROUND(lVar16);
                    }
code_r0x0028cabb:
                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;
                    iVar14 = *(int *)(iVar6 + 0x2a8);
                    goto code_r0x0028cad9;
                  }
                  if (uVar12 != 0) {
                    switch(uVar10) {
                    default:
                      goto code_r0x0028cbef;
                    case 2:
                    case 3:
                      goto code_r0x0028caef;
                    case 4:
                    case 5:
                      uStack_103c = ReadBlobLong(iVar6);
                      goto code_r0x0028cafc;
                    case 6:
                      lVar16 = (longdouble)ReadBlobFloat(iVar6);
                      break;
                    case 8:
                      lVar16 = (longdouble)ReadBlobDouble(iVar6);
                    }
                    uStack_103c = (uint)ROUND(lVar16);
                    goto code_r0x0028cafc;
                  }
code_r0x0028cbef:
                  lVar16 = (longdouble)0;
                }
                else {
                  switch(uVar10) {
                  case 0:
                  case 1:
code_r0x0028caae:
                    uVar5 = ReadBlobByte(iVar6);
                    goto code_r0x0028cabb;
                  case 2:
                  case 3:
code_r0x0028caef:
                    uStack_103c = ReadBlobShort(iVar6);
code_r0x0028cafc:
                    lVar16 = (longdouble)(uStack_103c & 0xffff);
                    iVar14 = *(int *)(iVar6 + 0x2a8);
                    break;
                  case 4:
                  case 5:
                    uVar13 = ReadBlobLong(iVar6);
                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;
                    iVar14 = *(int *)(iVar6 + 0x2a8);
                    break;
                  case 6:
                    lVar16 = (longdouble)ReadBlobFloat(iVar6);
                    iVar14 = *(int *)(iVar6 + 0x2a8);
                    lVar16 = lVar16 * (longdouble)DAT_0029f710;
                    break;
                  default:
                    goto code_r0x0028cbef;
                  case 8:
                    lVar16 = (longdouble)ReadBlobDouble(iVar6);
                    iVar14 = *(int *)(iVar6 + 0x2a8);
                    lVar16 = lVar16 * (longdouble)DAT_0029f710;
                  }
                }
code_r0x0028cad9:
                if (*(int *)(iVar14 + 0x40) != 0) {
                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;
                }
                goto code_r0x0028bc60;
              }
              if (uVar15 == 0) {
                if ((uVar11 & 0x20002) != 0) {
                  switch(uVar10) {
                  case 0:
                  case 1:
                    goto code_r0x0028c600;
                  case 2:
                  case 3:
code_r0x0028c7e6:
                    uVar5 = ReadBlobShort(iVar6);
                    break;
                  case 4:
                  case 5:
code_r0x0028c82c:
                    uVar5 = ReadBlobLong(iVar6);
                    break;
                  case 6:
code_r0x0028c7f8:
                    lVar16 = (longdouble)ReadBlobFloat(iVar6);
                    uVar5 = (ushort)ROUND(lVar16);
                    break;
                  default:
                    goto code_r0x0028c1d2;
                  case 8:
code_r0x0028c83e:
                    lVar16 = (longdouble)ReadBlobDouble(iVar6);
                    uVar5 = (ushort)ROUND(lVar16);
                  }
code_r0x0028c60d:
                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;
                  iVar14 = *(int *)(iVar6 + 0x2a8);
                  goto code_r0x0028c1d8;
                }
                if (uVar12 != 0) {
                  switch(uVar10) {
                  default:
                    goto code_r0x0028c1d2;
                  case 2:
                  case 3:
                    goto code_r0x0028c630;
                  case 4:
                  case 5:
code_r0x0028ca3d:
                    uStack_103c = ReadBlobLong(iVar6);
                    goto code_r0x0028c63d;
                  case 6:
code_r0x0028ca4f:
                    lVar16 = (longdouble)ReadBlobFloat(iVar6);
                    break;
                  case 8:
code_r0x0028ca82:
                    lVar16 = (longdouble)ReadBlobDouble(iVar6);
                  }
                  uStack_103c = (uint)ROUND(lVar16);
                  goto code_r0x0028c63d;
                }
code_r0x0028c1d2:
                lVar16 = (longdouble)0;
              }
              else {
                switch(uVar10) {
                case 0:
                case 1:
code_r0x0028c600:
                  uVar5 = ReadBlobByte(iVar6);
                  goto code_r0x0028c60d;
                case 2:
                case 3:
code_r0x0028c630:
                  uStack_103c = ReadBlobShort(iVar6);
code_r0x0028c63d:
                  lVar16 = (longdouble)(uStack_103c & 0xffff);
                  iVar14 = *(int *)(iVar6 + 0x2a8);
                  break;
                case 4:
                case 5:
code_r0x0028c6a4:
                  uVar13 = ReadBlobLong(iVar6);
                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;
                  iVar14 = *(int *)(iVar6 + 0x2a8);
                  break;
                case 6:
code_r0x0028c67f:
                  lVar16 = (longdouble)ReadBlobFloat(iVar6);
                  iVar14 = *(int *)(iVar6 + 0x2a8);
                  lVar16 = lVar16 * (longdouble)DAT_0029f710;
                  break;
                default:
                  goto code_r0x0028c1d2;
                case 8:
code_r0x0028c65a:
                  lVar16 = (longdouble)ReadBlobDouble(iVar6);
                  iVar14 = *(int *)(iVar6 + 0x2a8);
                  lVar16 = lVar16 * (longdouble)DAT_0029f710;
                }
              }
              goto code_r0x0028c1d8;
            }
            if (uVar9 != 5) goto code_r0x0028bc60;
            if (uVar15 != 0) {
              switch(uVar10) {
              case 0:
              case 1:
                bVar4 = ReadBlobByte(iVar6);
                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;
                break;
              case 2:
              case 3:
                uVar5 = ReadBlobShort(iVar6);
                lVar16 = (longdouble)uVar5;
                break;
              case 4:
              case 5:
                uVar13 = ReadBlobLong(iVar6);
                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;
                break;
              case 6:
                lVar16 = (longdouble)ReadBlobFloat(iVar6);
                iVar14 = *(int *)(iVar6 + 0x2a8);
                lVar16 = lVar16 * (longdouble)DAT_0029f710;
                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;
                goto code_r0x0028c8f8;
              default:
                if (*(int *)(iVar14 + 0x40) != 0) {
                  lVar16 = (longdouble)0;
                  goto code_r0x0028cba5;
                }
                goto code_r0x0028c951;
              case 8:
                lVar16 = (longdouble)ReadBlobDouble(iVar6);
                iVar14 = *(int *)(iVar6 + 0x2a8);
                lVar16 = lVar16 * (longdouble)DAT_0029f710;
                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;
                goto code_r0x0028c89f;
              }
              iVar14 = *(int *)(iVar6 + 0x2a8);
              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;
              goto code_r0x0028c951;
            }
            if ((uVar11 & 0x20002) == 0) {
              if (uVar12 == 0) {
code_r0x0028cd74:
                lVar16 = (longdouble)0;
                goto code_r0x0028cc3c;
              }
              switch(uVar10) {
              default:
                goto code_r0x0028cd74;
              case 2:
              case 3:
                uStack_103c = ReadBlobShort(iVar6);
                break;
              case 4:
              case 5:
                uStack_103c = ReadBlobLong(iVar6);
                break;
              case 6:
                lVar16 = (longdouble)ReadBlobFloat(iVar6);
                goto code_r0x0028cc20;
              case 8:
                lVar16 = (longdouble)ReadBlobDouble(iVar6);
code_r0x0028cc20:
                uStack_103c = (uint)ROUND(lVar16);
              }
              lVar16 = (longdouble)(uStack_103c & 0xffff);
              iVar14 = *(int *)(iVar6 + 0x2a8);
code_r0x0028cc3c:
              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;
              goto code_r0x0028cbc9;
            }
            switch(uVar10) {
            case 0:
            case 1:
              uStack_103e = ReadBlobByte(iVar6);
              break;
            case 2:
            case 3:
              uStack_103e = ReadBlobShort(iVar6);
              break;
            case 4:
            case 5:
              uStack_103e = ReadBlobLong(iVar6);
              break;
            case 6:
              lVar16 = (longdouble)ReadBlobFloat(iVar6);
              goto code_r0x0028cda5;
            default:
              lVar16 = (longdouble)0;
              goto code_r0x0028cdc8;
            case 8:
              lVar16 = (longdouble)ReadBlobDouble(iVar6);
code_r0x0028cda5:
              uStack_103e = (ushort)ROUND(lVar16);
            }
            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;
            iVar14 = *(int *)(iVar6 + 0x2a8);
code_r0x0028cdc8:
            if (*(int *)(iVar14 + 0x40) == 0) {
code_r0x0028cdd5:
              switch(uVar10) {
              case 0:
              case 1:
code_r0x0028c96b:
                uVar5 = ReadBlobByte(iVar6);
                break;
              case 2:
              case 3:
                uVar5 = ReadBlobShort(iVar6);
                break;
              case 4:
              case 5:
                uVar5 = ReadBlobLong(iVar6);
                break;
              case 6:
                lVar16 = (longdouble)ReadBlobFloat(iVar6);
                uVar5 = (ushort)ROUND(lVar16);
                break;
              default:
                goto code_r0x0028ca36;
              case 8:
                lVar16 = (longdouble)ReadBlobDouble(iVar6);
                uVar5 = (ushort)ROUND(lVar16);
              }
              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;
              goto code_r0x0028c8c0;
            }
code_r0x0028cba5:
            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;
            if (uVar15 == 0) {
              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;
code_r0x0028cbc9:
              if (uVar12 != 0) {
                switch(uVar10) {
                default:
                  goto code_r0x0028ca36;
                case 2:
                case 3:
                  goto code_r0x0028c995;
                case 4:
                case 5:
                  uStack_103c = ReadBlobLong(iVar6);
                  goto code_r0x0028c9a2;
                case 6:
                  lVar16 = (longdouble)ReadBlobFloat(iVar6);
                  break;
                case 8:
                  lVar16 = (longdouble)ReadBlobDouble(iVar6);
                }
                uStack_103c = (uint)ROUND(lVar16);
                goto code_r0x0028c9a2;
              }
code_r0x0028ca36:
              lVar16 = (longdouble)0;
            }
            else {
code_r0x0028c951:
              switch(uVar10) {
              case 0:
              case 1:
                goto code_r0x0028c96b;
              case 2:
              case 3:
code_r0x0028c995:
                uStack_103c = ReadBlobShort(iVar6);
code_r0x0028c9a2:
                lVar16 = (longdouble)(uStack_103c & 0xffff);
                break;
              case 4:
              case 5:
                uVar13 = ReadBlobLong(iVar6);
                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;
                break;
              case 6:
code_r0x0028c8f8:
                lVar16 = (longdouble)ReadBlobFloat(iVar6);
                lVar16 = lVar16 * (longdouble)DAT_0029f710;
                break;
              default:
                goto code_r0x0028ca36;
              case 8:
code_r0x0028c89f:
                lVar16 = (longdouble)ReadBlobDouble(iVar6);
                lVar16 = lVar16 * (longdouble)DAT_0029f710;
              }
            }
code_r0x0028c8c0:
            iVar14 = *(int *)(iVar6 + 0x2a8);
code_r0x0028c1d8:
            if (*(int *)(iVar14 + 0x34) != 0) {
              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;
            }
code_r0x0028bc60:
            local_106c = local_106c + 1;
            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;
          } while (local_106c < *(int *)(iVar6 + 0x18));
        }
        iVar7 = SyncAuthenticPixels(iVar6,param_2);
        if (iVar7 == 0) goto code_r0x0028c2d0;
        iStack_1058 = iStack_1058 + 1;
      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));
    }
    bVar3 = true;
code_r0x0028c2d7:
    iStack_1024 = 0;
    while (iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0) {
      auStack_1020[iVar7] = 0;
      if (iStack_1024 == 0) {
        iStack_1024 = ConstantString(auStack_1020);
      }
      else {
        ConcatenateString(&iStack_1024,auStack_1020);
      }
    }
    if (iStack_1024 != 0) {
      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);
      iStack_1024 = RelinquishMagickMemory(iStack_1024);
    }
    CloseBlob(iVar6);
    if (bVar3) goto LAB_0028b7fb;
  }
  else {
code_r0x0028b983:
    pcVar17 = "Unsupported combination of band format and colorspace";
    uVar8 = 0x1f2;
LAB_0028b9a2:
    ThrowMagickException
              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)
    ;
LAB_0028b7e8:
    CloseBlob(iVar6);
    DestroyImageList(iVar6);
  }
LAB_0028b7f9:
  iVar6 = 0;
LAB_0028b7fb:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return iVar6;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0029eab0();
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00038830
ADD EBX,0x14d987
SUB ESP,0x105c
MOV EAX,dword ptr [ESP + 0x1074]
MOV ESI,dword ptr [ESP + 0x1070]
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x104c],EAX
XOR EAX,EAX
TEST ESI,ESI
JZ 0x0028cff0
CMP dword ptr [ESI + 0x31f4],0xabacadab
JNZ 0x0028d00f
MOV EDX,dword ptr [ESI + 0x31f0]
TEST EDX,EDX
JNZ 0x0028b820
MOV EAX,dword ptr [ESP + 0x4]
TEST EAX,EAX
JZ 0x0028d04d
MOV EAX,dword ptr [ESP + 0x4]
CMP dword ptr [EAX + 0x1c],0xabacadab
JNZ 0x0028d02e
SUB ESP,0x8
MOV EBP,dword ptr [ESP + 0xc]
PUSH EBP
PUSH ESI
CALL 0x000313c0
ADD ESP,0x10
PUSH EBP
MOV EDI,EAX
PUSH 0x2
PUSH EAX
PUSH ESI
CALL 0x00032230
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0028c230
SUB ESP,0xc
PUSH EDI
CALL 0x00033ac0
ADD ESP,0x10
CMP EAX,0x8f2a6b6
JZ 0x0028b860
CMP EAX,0xb6a6f208
JNZ 0x0028b7a8
MOV dword ptr [EDI + 0x234],0x2
SUB ESP,0xc
PUSH EDI
CALL 0x00033a10
MOV dword ptr [EDI + 0x18],EAX
MOV dword ptr [ESP],EDI
CALL 0x00033a10
ADD ESP,0x10
MOV dword ptr [EDI + 0x1c],EAX
PUSH dword ptr [ESP + 0x4]
PUSH EAX
PUSH dword ptr [EDI + 0x18]
PUSH EDI
CALL 0x00031910
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0028b870
SUB ESP,0xc
PUSH EDI
CALL 0x00033a10
MOV dword ptr [ESP],EDI
MOV dword ptr [ESP + 0x10],EAX
CALL 0x00033a10
MOV dword ptr [ESP],EDI
CALL 0x00033a10
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
CMP EAX,0x8
JA 0x0028bbd0
MOV EAX,dword ptr [EBX + EAX*0x4 + 0xfff35e7c]
ADD EAX,EBX
JMP EAX
LEA EAX,[EBX + 0xffec8a40]
ADD ESI,0x21f0
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xffef2dca]
PUSH EAX
LEA EAX,[EBX + 0xfff3626c]
PUSH 0x1a9
PUSH 0x19c
PUSH EAX
LEA EAX,[EBX + 0xfff35d6f]
PUSH EAX
PUSH dword ptr [ESP + 0x20]
CALL 0x00032e80
ADD ESP,0x20
TEST EDI,EDI
JZ 0x0028b7f9
SUB ESP,0xc
PUSH EDI
CALL 0x000311d0
MOV dword ptr [ESP],EDI
CALL 0x000317a0
ADD ESP,0x10
XOR EDI,EDI
MOV EDX,dword ptr [ESP + 0x104c]
XOR EDX,dword ptr GS:[0x14]
MOV EAX,EDI
JNZ 0x0028cfeb
ADD ESP,0x105c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[ESI + 0x21f0]
SUB ESP,0x8
PUSH EAX
LEA EAX,[EBX + 0xffedde4e]
PUSH EAX
LEA EAX,[EBX + 0xfff3626c]
PUSH 0x18a
PUSH EAX
LEA EAX,[EBX + 0xfff35d6f]
PUSH EAX
PUSH 0x8000
CALL 0x000323b0
ADD ESP,0x20
JMP 0x0028b6cc
MOV dword ptr [EDI + 0x234],0x1
JMP 0x0028b739
SUB ESP,0xc
PUSH EDI
CALL 0x000317a0
ADD ESP,0x10
MOV EDI,EAX
JMP 0x0028b7fb
LEA EAX,[EBX + 0xfff3626c]
PUSH EAX
LEA EAX,[EBX + 0xfff35d6f]
PUSH EAX
PUSH dword ptr [ESP + 0x20]
CALL 0x00032e80
ADD ESP,0x14
JMP 0x0028b7e8
LEA EAX,[EBX + 0xffec8a40]
ADD ESI,0x21f0
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xfff35d8b]
PUSH EAX
PUSH 0x1c2
PUSH 0x1bb
JMP 0x0028b9a2
SUB ESP,0xc
PUSH EDI
XOR EDI,EDI
CALL 0x000317a0
ADD ESP,0x10
JMP 0x0028b7fb
CALL 0x0029eab0
LEA EAX,[EBX + 0xfff3627c]
PUSH EAX
LEA EAX,[EBX + 0xfff35d6f]
PUSH 0x187
PUSH EAX
LEA EAX,[EBX + 0xffec5b00]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EBX + 0xfff3627c]
PUSH EAX
LEA EAX,[EBX + 0xfff35d6f]
PUSH 0x188
PUSH EAX
LEA EAX,[EBX + 0xffec5b28]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EBX + 0xfff3627c]
PUSH EAX
LEA EAX,[EBX + 0xfff35d6f]
PUSH 0x18d
PUSH EAX
LEA EAX,[EBX + 0xffec776c]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EBX + 0xfff3627c]
PUSH EAX
LEA EAX,[EBX + 0xfff35d6f]
PUSH 0x18c
PUSH EAX
LEA EAX,[EBX + 0xffec6a3c]
PUSH EAX
CALL 0x000313d0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint FUN_0028b670(int param_1,int param_2)\n\n{\n  double dVar1;\n  float fVar2;\n  bool bVar3;\n  byte bVar4;\n  ushort uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  int iVar14;\n  uint uVar15;\n  int in_GS_OFFSET;\n  longdouble lVar16;\n  char *pcVar17;\n  int local_106c;\n  int iStack_1058;\n  ushort uStack_103e;\n  uint uStack_103c;\n  int iStack_1024;\n  undefined1 auStack_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x28b679;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");\n  }\n  iVar6 = AcquireImage(param_1,param_2);\n  iVar7 = OpenBlob(param_1,iVar6,2,param_2);\n  if (iVar7 == 0) {\n    DestroyImageList(iVar6);\n    iVar6 = 0;\n    goto LAB_0028b7fb;\n  }\n  iVar7 = ReadBlobLSBLong(iVar6);\n  if (iVar7 != 0x8f2a6b6) {\n    if (iVar7 == -0x49590df8) {\n      *(undefined4 *)(iVar6 + 0x234) = 2;\n      goto LAB_0028b739;\n    }\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0);\n    if (iVar6 != 0) goto LAB_0028b7e8;\n    goto LAB_0028b7f9;\n  }\n  *(undefined4 *)(iVar6 + 0x234) = 1;\nLAB_0028b739:\n  uVar8 = ReadBlobLong(iVar6);\n  *(undefined4 *)(iVar6 + 0x18) = uVar8;\n  uVar8 = ReadBlobLong(iVar6);\n  *(undefined4 *)(iVar6 + 0x1c) = uVar8;\n  iVar7 = SetImageExtent(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2);\n  if (iVar7 == 0) {\n    iVar6 = DestroyImageList(iVar6);\n    goto LAB_0028b7fb;\n  }\n  uVar9 = ReadBlobLong(iVar6);\n  ReadBlobLong(iVar6);\n  uVar10 = ReadBlobLong(iVar6);\n  switch(uVar10) {\n  case 0:\n  case 1:\n    *(undefined4 *)(iVar6 + 0x20) = 8;\n    break;\n  case 2:\n  case 3:\n    *(undefined4 *)(iVar6 + 0x20) = 0x10;\n    break;\n  case 4:\n  case 5:\n  case 6:\n    *(undefined4 *)(iVar6 + 0x20) = 0x20;\n    break;\n  default:\n    pcVar17 = "Unsupported band format";\n    uVar8 = 0x1bb;\n    goto LAB_0028b9a2;\n  case 8:\n    *(undefined4 *)(iVar6 + 0x20) = 0x40;\n  }\n  iVar7 = ReadBlobLong(iVar6);\n  uVar11 = ReadBlobLong(iVar6);\n  switch(uVar11) {\n  default:\n    pcVar17 = "Unsupported colorspace";\n    uVar8 = 0x1e2;\n    goto LAB_0028b9a2;\n  case 1:\n  case 0x1a:\n    SetImageColorspace(iVar6,3,param_2);\n    if (uVar9 == 2) {\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    break;\n  case 0xf:\n    SetImageColorspace(iVar6,2,param_2);\n    if (uVar9 == 5) {\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    goto code_r0x0028b9e4;\n  case 0x11:\n  case 0x19:\n    SetImageColorspace(iVar6,0x15,param_2);\n    if (uVar9 == 4) goto code_r0x0028bb8c;\n    break;\n  case 0x16:\n    SetImageColorspace(iVar6,0x17,param_2);\n    if (uVar9 == 4) goto code_r0x0028bbbc;\ncode_r0x0028b9e4:\n    SetImageBackgroundColor(iVar6,param_2);\n    *(undefined4 *)(iVar6 + 0x1dc) = 2;\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    fVar2 = DAT_002aa50c;\n    *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n    goto code_r0x0028ba52;\n  }\n  SetImageBackgroundColor(iVar6,param_2);\n  *(undefined4 *)(iVar6 + 0x1dc) = 2;\n  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n  fVar2 = DAT_002aa50c;\n  *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n  *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n  ReadBlobLongLong(iVar6);\n  ReadBlobLongLong(iVar6);\n  ReadBlobLongLong(iVar6);\n  if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n  if (uVar11 < 0x1b) {\ncode_r0x0028ba52:\n    uVar11 = 1 << ((byte)uVar11 & 0x1f);\n    if (((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))) goto code_r0x0028b983;\n    if (4 < uVar9 - 1) {\n      pcVar17 = "Unsupported number of channels";\n      uVar8 = 500;\n      goto LAB_0028b9a2;\n    }\n    if (iVar7 != 0) {\n      pcVar17 = "Unsupported coding";\n      uVar8 = 0x1f8;\n      goto LAB_0028b9a2;\n    }\n    if (0 < *(int *)(iVar6 + 0x1c)) {\n      iStack_1058 = 0;\n      do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));\n    }\n    bVar3 = true;\ncode_r0x0028c2d7:\n    iStack_1024 = 0;\n    while (iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0) {\n      auStack_1020[iVar7] = 0;\n      if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }\n    }\n    if (iStack_1024 != 0) {\n      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);\n      iStack_1024 = RelinquishMagickMemory(iStack_1024);\n    }\n    CloseBlob(iVar6);\n    if (bVar3) goto LAB_0028b7fb;\n  }\n  else {\ncode_r0x0028b983:\n    pcVar17 = "Unsupported combination of band format and colorspace";\n    uVar8 = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;\nLAB_0028b7e8:\n    CloseBlob(iVar6);\n    DestroyImageList(iVar6);\n  }\nLAB_0028b7f9:\n  iVar6 = 0;\nLAB_0028b7fb:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0029eab0();\n}\n\n" comment (function_definition "int FUN_0028b670(int param_1,int param_2)\n\n{\n  double dVar1;\n  float fVar2;\n  bool bVar3;\n  byte bVar4;\n  ushort uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  int iVar14;\n  uint uVar15;\n  int in_GS_OFFSET;\n  longdouble lVar16;\n  char *pcVar17;\n  int local_106c;\n  int iStack_1058;\n  ushort uStack_103e;\n  uint uStack_103c;\n  int iStack_1024;\n  undefined1 auStack_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x28b679;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");\n  }\n  iVar6 = AcquireImage(param_1,param_2);\n  iVar7 = OpenBlob(param_1,iVar6,2,param_2);\n  if (iVar7 == 0) {\n    DestroyImageList(iVar6);\n    iVar6 = 0;\n    goto LAB_0028b7fb;\n  }\n  iVar7 = ReadBlobLSBLong(iVar6);\n  if (iVar7 != 0x8f2a6b6) {\n    if (iVar7 == -0x49590df8) {\n      *(undefined4 *)(iVar6 + 0x234) = 2;\n      goto LAB_0028b739;\n    }\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0);\n    if (iVar6 != 0) goto LAB_0028b7e8;\n    goto LAB_0028b7f9;\n  }\n  *(undefined4 *)(iVar6 + 0x234) = 1;\nLAB_0028b739:\n  uVar8 = ReadBlobLong(iVar6);\n  *(undefined4 *)(iVar6 + 0x18) = uVar8;\n  uVar8 = ReadBlobLong(iVar6);\n  *(undefined4 *)(iVar6 + 0x1c) = uVar8;\n  iVar7 = SetImageExtent(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2);\n  if (iVar7 == 0) {\n    iVar6 = DestroyImageList(iVar6);\n    goto LAB_0028b7fb;\n  }\n  uVar9 = ReadBlobLong(iVar6);\n  ReadBlobLong(iVar6);\n  uVar10 = ReadBlobLong(iVar6);\n  switch(uVar10) {\n  case 0:\n  case 1:\n    *(undefined4 *)(iVar6 + 0x20) = 8;\n    break;\n  case 2:\n  case 3:\n    *(undefined4 *)(iVar6 + 0x20) = 0x10;\n    break;\n  case 4:\n  case 5:\n  case 6:\n    *(undefined4 *)(iVar6 + 0x20) = 0x20;\n    break;\n  default:\n    pcVar17 = "Unsupported band format";\n    uVar8 = 0x1bb;\n    goto LAB_0028b9a2;\n  case 8:\n    *(undefined4 *)(iVar6 + 0x20) = 0x40;\n  }\n  iVar7 = ReadBlobLong(iVar6);\n  uVar11 = ReadBlobLong(iVar6);\n  switch(uVar11) {\n  default:\n    pcVar17 = "Unsupported colorspace";\n    uVar8 = 0x1e2;\n    goto LAB_0028b9a2;\n  case 1:\n  case 0x1a:\n    SetImageColorspace(iVar6,3,param_2);\n    if (uVar9 == 2) {\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    break;\n  case 0xf:\n    SetImageColorspace(iVar6,2,param_2);\n    if (uVar9 == 5) {\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    goto code_r0x0028b9e4;\n  case 0x11:\n  case 0x19:\n    SetImageColorspace(iVar6,0x15,param_2);\n    if (uVar9 == 4) goto code_r0x0028bb8c;\n    break;\n  case 0x16:\n    SetImageColorspace(iVar6,0x17,param_2);\n    if (uVar9 == 4) goto code_r0x0028bbbc;\ncode_r0x0028b9e4:\n    SetImageBackgroundColor(iVar6,param_2);\n    *(undefined4 *)(iVar6 + 0x1dc) = 2;\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    fVar2 = DAT_002aa50c;\n    *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n    goto code_r0x0028ba52;\n  }\n  SetImageBackgroundColor(iVar6,param_2);\n  *(undefined4 *)(iVar6 + 0x1dc) = 2;\n  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n  fVar2 = DAT_002aa50c;\n  *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n  *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n  ReadBlobLongLong(iVar6);\n  ReadBlobLongLong(iVar6);\n  ReadBlobLongLong(iVar6);\n  if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n  if (uVar11 < 0x1b) {\ncode_r0x0028ba52:\n    uVar11 = 1 << ((byte)uVar11 & 0x1f);\n    if (((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))) goto code_r0x0028b983;\n    if (4 < uVar9 - 1) {\n      pcVar17 = "Unsupported number of channels";\n      uVar8 = 500;\n      goto LAB_0028b9a2;\n    }\n    if (iVar7 != 0) {\n      pcVar17 = "Unsupported coding";\n      uVar8 = 0x1f8;\n      goto LAB_0028b9a2;\n    }\n    if (0 < *(int *)(iVar6 + 0x1c)) {\n      iStack_1058 = 0;\n      do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));\n    }\n    bVar3 = true;\ncode_r0x0028c2d7:\n    iStack_1024 = 0;\n    while (iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0) {\n      auStack_1020[iVar7] = 0;\n      if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }\n    }\n    if (iStack_1024 != 0) {\n      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);\n      iStack_1024 = RelinquishMagickMemory(iStack_1024);\n    }\n    CloseBlob(iVar6);\n    if (bVar3) goto LAB_0028b7fb;\n  }\n  else {\ncode_r0x0028b983:\n    pcVar17 = "Unsupported combination of band format and colorspace";\n    uVar8 = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;\nLAB_0028b7e8:\n    CloseBlob(iVar6);\n    DestroyImageList(iVar6);\n  }\nLAB_0028b7f9:\n  iVar6 = 0;\nLAB_0028b7fb:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0029eab0();\n}" primitive_type (function_declarator "FUN_0028b670(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  double dVar1;\n  float fVar2;\n  bool bVar3;\n  byte bVar4;\n  ushort uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  int iVar14;\n  uint uVar15;\n  int in_GS_OFFSET;\n  longdouble lVar16;\n  char *pcVar17;\n  int local_106c;\n  int iStack_1058;\n  ushort uStack_103e;\n  uint uStack_103c;\n  int iStack_1024;\n  undefined1 auStack_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x28b679;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");\n  }\n  iVar6 = AcquireImage(param_1,param_2);\n  iVar7 = OpenBlob(param_1,iVar6,2,param_2);\n  if (iVar7 == 0) {\n    DestroyImageList(iVar6);\n    iVar6 = 0;\n    goto LAB_0028b7fb;\n  }\n  iVar7 = ReadBlobLSBLong(iVar6);\n  if (iVar7 != 0x8f2a6b6) {\n    if (iVar7 == -0x49590df8) {\n      *(undefined4 *)(iVar6 + 0x234) = 2;\n      goto LAB_0028b739;\n    }\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0);\n    if (iVar6 != 0) goto LAB_0028b7e8;\n    goto LAB_0028b7f9;\n  }\n  *(undefined4 *)(iVar6 + 0x234) = 1;\nLAB_0028b739:\n  uVar8 = ReadBlobLong(iVar6);\n  *(undefined4 *)(iVar6 + 0x18) = uVar8;\n  uVar8 = ReadBlobLong(iVar6);\n  *(undefined4 *)(iVar6 + 0x1c) = uVar8;\n  iVar7 = SetImageExtent(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2);\n  if (iVar7 == 0) {\n    iVar6 = DestroyImageList(iVar6);\n    goto LAB_0028b7fb;\n  }\n  uVar9 = ReadBlobLong(iVar6);\n  ReadBlobLong(iVar6);\n  uVar10 = ReadBlobLong(iVar6);\n  switch(uVar10) {\n  case 0:\n  case 1:\n    *(undefined4 *)(iVar6 + 0x20) = 8;\n    break;\n  case 2:\n  case 3:\n    *(undefined4 *)(iVar6 + 0x20) = 0x10;\n    break;\n  case 4:\n  case 5:\n  case 6:\n    *(undefined4 *)(iVar6 + 0x20) = 0x20;\n    break;\n  default:\n    pcVar17 = "Unsupported band format";\n    uVar8 = 0x1bb;\n    goto LAB_0028b9a2;\n  case 8:\n    *(undefined4 *)(iVar6 + 0x20) = 0x40;\n  }\n  iVar7 = ReadBlobLong(iVar6);\n  uVar11 = ReadBlobLong(iVar6);\n  switch(uVar11) {\n  default:\n    pcVar17 = "Unsupported colorspace";\n    uVar8 = 0x1e2;\n    goto LAB_0028b9a2;\n  case 1:\n  case 0x1a:\n    SetImageColorspace(iVar6,3,param_2);\n    if (uVar9 == 2) {\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    break;\n  case 0xf:\n    SetImageColorspace(iVar6,2,param_2);\n    if (uVar9 == 5) {\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    goto code_r0x0028b9e4;\n  case 0x11:\n  case 0x19:\n    SetImageColorspace(iVar6,0x15,param_2);\n    if (uVar9 == 4) goto code_r0x0028bb8c;\n    break;\n  case 0x16:\n    SetImageColorspace(iVar6,0x17,param_2);\n    if (uVar9 == 4) goto code_r0x0028bbbc;\ncode_r0x0028b9e4:\n    SetImageBackgroundColor(iVar6,param_2);\n    *(undefined4 *)(iVar6 + 0x1dc) = 2;\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    fVar2 = DAT_002aa50c;\n    *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n    goto code_r0x0028ba52;\n  }\n  SetImageBackgroundColor(iVar6,param_2);\n  *(undefined4 *)(iVar6 + 0x1dc) = 2;\n  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n  fVar2 = DAT_002aa50c;\n  *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n  *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n  ReadBlobLongLong(iVar6);\n  ReadBlobLongLong(iVar6);\n  ReadBlobLongLong(iVar6);\n  if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n  if (uVar11 < 0x1b) {\ncode_r0x0028ba52:\n    uVar11 = 1 << ((byte)uVar11 & 0x1f);\n    if (((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))) goto code_r0x0028b983;\n    if (4 < uVar9 - 1) {\n      pcVar17 = "Unsupported number of channels";\n      uVar8 = 500;\n      goto LAB_0028b9a2;\n    }\n    if (iVar7 != 0) {\n      pcVar17 = "Unsupported coding";\n      uVar8 = 0x1f8;\n      goto LAB_0028b9a2;\n    }\n    if (0 < *(int *)(iVar6 + 0x1c)) {\n      iStack_1058 = 0;\n      do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));\n    }\n    bVar3 = true;\ncode_r0x0028c2d7:\n    iStack_1024 = 0;\n    while (iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0) {\n      auStack_1020[iVar7] = 0;\n      if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }\n    }\n    if (iStack_1024 != 0) {\n      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);\n      iStack_1024 = RelinquishMagickMemory(iStack_1024);\n    }\n    CloseBlob(iVar6);\n    if (bVar3) goto LAB_0028b7fb;\n  }\n  else {\ncode_r0x0028b983:\n    pcVar17 = "Unsupported combination of band format and colorspace";\n    uVar8 = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;\nLAB_0028b7e8:\n    CloseBlob(iVar6);\n    DestroyImageList(iVar6);\n  }\nLAB_0028b7f9:\n  iVar6 = 0;\nLAB_0028b7fb:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar6;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0029eab0();\n}" { (declaration "double dVar1;" primitive_type identifier ;) (declaration "float fVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "longdouble lVar16;" type_identifier identifier ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "int local_106c;" primitive_type identifier ;) (declaration "int iStack_1058;" primitive_type identifier ;) (declaration "ushort uStack_103e;" type_identifier identifier ;) (declaration "uint uStack_103c;" type_identifier identifier ;) (declaration "int iStack_1024;" primitive_type identifier ;) (declaration "undefined1 auStack_1020 [4096];" type_identifier (array_declarator "auStack_1020 [4096]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x28b679;" (assignment_expression "uStack_14 = 0x28b679" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");\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/vips.c",0x187,"ReadVIPSImage");\n  }" { comment (expression_statement "__assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");" (call_expression "__assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage")" identifier (argument_list "("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage")" ( (string_literal ""image_info != (const ImageInfo *) NULL"" " string_content ") , (string_literal ""coders/vips.c"" " string_content ") , number_literal , (string_literal ""ReadVIPSImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x31f4) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x31f4) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x31f4)" * (cast_expression "(int *)(param_1 + 0x31f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x31f4)" ( (binary_expression "param_1 + 0x31f4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");\n  }" { comment (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage")" identifier (argument_list "("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage")" ( (string_literal ""image_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/vips.c"" " string_content ") , number_literal , (string_literal ""ReadVIPSImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x31f0) != 0)" ( (binary_expression "*(int *)(param_1 + 0x31f0) != 0" (pointer_expression "*(int *)(param_1 + 0x31f0)" * (cast_expression "(int *)(param_1 + 0x31f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x31f0)" ( (binary_expression "param_1 + 0x31f0" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0);\n  }" { (expression_statement "LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0);" (call_expression "LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0)" identifier (argument_list "(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0)" ( number_literal , (string_literal ""coders/vips.c"" " string_content ") , (string_literal ""ReadVIPSImage"" " string_content ") , number_literal , (pointer_expression "&DAT_002b6e4e" & identifier) , (binary_expression "param_1 + 0x21f0" identifier + number_literal) ))) ;) })) (if_statement "if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");\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/vips.c",0x18c,"ReadVIPSImage");\n  }" { comment (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage")" identifier (argument_list "("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage")" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""coders/vips.c"" " string_content ") , number_literal , (string_literal ""ReadVIPSImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_2 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");\n  }" { comment (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage")" identifier (argument_list "("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage")" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/vips.c"" " string_content ") , number_literal , (string_literal ""ReadVIPSImage"" " string_content ") ))) ;) })) (expression_statement "iVar6 = AcquireImage(param_1,param_2);" (assignment_expression "iVar6 = AcquireImage(param_1,param_2)" identifier = (call_expression "AcquireImage(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (expression_statement "iVar7 = OpenBlob(param_1,iVar6,2,param_2);" (assignment_expression "iVar7 = OpenBlob(param_1,iVar6,2,param_2)" identifier = (call_expression "OpenBlob(param_1,iVar6,2,param_2)" identifier (argument_list "(param_1,iVar6,2,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n    DestroyImageList(iVar6);\n    iVar6 = 0;\n    goto LAB_0028b7fb;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    DestroyImageList(iVar6);\n    iVar6 = 0;\n    goto LAB_0028b7fb;\n  }" { (expression_statement "DestroyImageList(iVar6);" (call_expression "DestroyImageList(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0028b7fb;" goto statement_identifier ;) })) (expression_statement "iVar7 = ReadBlobLSBLong(iVar6);" (assignment_expression "iVar7 = ReadBlobLSBLong(iVar6)" identifier = (call_expression "ReadBlobLSBLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (if_statement "if (iVar7 != 0x8f2a6b6) {\n    if (iVar7 == -0x49590df8) {\n      *(undefined4 *)(iVar6 + 0x234) = 2;\n      goto LAB_0028b739;\n    }\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0);\n    if (iVar6 != 0) goto LAB_0028b7e8;\n    goto LAB_0028b7f9;\n  }" if (parenthesized_expression "(iVar7 != 0x8f2a6b6)" ( (binary_expression "iVar7 != 0x8f2a6b6" identifier != number_literal) )) (compound_statement "{\n    if (iVar7 == -0x49590df8) {\n      *(undefined4 *)(iVar6 + 0x234) = 2;\n      goto LAB_0028b739;\n    }\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0);\n    if (iVar6 != 0) goto LAB_0028b7e8;\n    goto LAB_0028b7f9;\n  }" { (if_statement "if (iVar7 == -0x49590df8) {\n      *(undefined4 *)(iVar6 + 0x234) = 2;\n      goto LAB_0028b739;\n    }" if (parenthesized_expression "(iVar7 == -0x49590df8)" ( (binary_expression "iVar7 == -0x49590df8" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(iVar6 + 0x234) = 2;\n      goto LAB_0028b739;\n    }" { (expression_statement "*(undefined4 *)(iVar6 + 0x234) = 2;" (assignment_expression "*(undefined4 *)(iVar6 + 0x234) = 2" (pointer_expression "*(undefined4 *)(iVar6 + 0x234)" * (cast_expression "(undefined4 *)(iVar6 + 0x234)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x234)" ( (binary_expression "iVar6 + 0x234" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0028b739;" goto statement_identifier ;) })) (expression_statement "ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0);" (call_expression "ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0)" identifier (argument_list "(param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0)" ( identifier , (string_literal ""coders/vips.c"" " string_content ") , (string_literal ""ReadVIPSImage"" " string_content ") , number_literal , number_literal , (string_literal ""ImproperImageHeader"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_1 + 0x21f0" identifier + number_literal) ))) ;) (if_statement "if (iVar6 != 0) goto LAB_0028b7e8;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0028b7e8;" goto statement_identifier ;)) (goto_statement "goto LAB_0028b7f9;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(iVar6 + 0x234) = 1;" (assignment_expression "*(undefined4 *)(iVar6 + 0x234) = 1" (pointer_expression "*(undefined4 *)(iVar6 + 0x234)" * (cast_expression "(undefined4 *)(iVar6 + 0x234)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x234)" ( (binary_expression "iVar6 + 0x234" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0028b739:\n  uVar8 = ReadBlobLong(iVar6);" statement_identifier : (expression_statement "uVar8 = ReadBlobLong(iVar6);" (assignment_expression "uVar8 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (expression_statement "*(undefined4 *)(iVar6 + 0x18) = uVar8;" (assignment_expression "*(undefined4 *)(iVar6 + 0x18) = uVar8" (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" * (cast_expression "(undefined4 *)(iVar6 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar8 = ReadBlobLong(iVar6);" (assignment_expression "uVar8 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x1c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar6 + 0x1c) = uVar8" (pointer_expression "*(undefined4 *)(iVar6 + 0x1c)" * (cast_expression "(undefined4 *)(iVar6 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = SetImageExtent(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2);" (assignment_expression "iVar7 = SetImageExtent(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2)" identifier = (call_expression "SetImageExtent(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2)" identifier (argument_list "(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2)" ( identifier , (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" * (cast_expression "(undefined4 *)(iVar6 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) , identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n    iVar6 = DestroyImageList(iVar6);\n    goto LAB_0028b7fb;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar6 = DestroyImageList(iVar6);\n    goto LAB_0028b7fb;\n  }" { (expression_statement "iVar6 = DestroyImageList(iVar6);" (assignment_expression "iVar6 = DestroyImageList(iVar6)" identifier = (call_expression "DestroyImageList(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (goto_statement "goto LAB_0028b7fb;" goto statement_identifier ;) })) (expression_statement "uVar9 = ReadBlobLong(iVar6);" (assignment_expression "uVar9 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "ReadBlobLong(iVar6);" (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (expression_statement "uVar10 = ReadBlobLong(iVar6);" (assignment_expression "uVar10 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (switch_statement "switch(uVar10) {\n  case 0:\n  case 1:\n    *(undefined4 *)(iVar6 + 0x20) = 8;\n    break;\n  case 2:\n  case 3:\n    *(undefined4 *)(iVar6 + 0x20) = 0x10;\n    break;\n  case 4:\n  case 5:\n  case 6:\n    *(undefined4 *)(iVar6 + 0x20) = 0x20;\n    break;\n  default:\n    pcVar17 = "Unsupported band format";\n    uVar8 = 0x1bb;\n    goto LAB_0028b9a2;\n  case 8:\n    *(undefined4 *)(iVar6 + 0x20) = 0x40;\n  }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n  case 0:\n  case 1:\n    *(undefined4 *)(iVar6 + 0x20) = 8;\n    break;\n  case 2:\n  case 3:\n    *(undefined4 *)(iVar6 + 0x20) = 0x10;\n    break;\n  case 4:\n  case 5:\n  case 6:\n    *(undefined4 *)(iVar6 + 0x20) = 0x20;\n    break;\n  default:\n    pcVar17 = "Unsupported band format";\n    uVar8 = 0x1bb;\n    goto LAB_0028b9a2;\n  case 8:\n    *(undefined4 *)(iVar6 + 0x20) = 0x40;\n  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n    *(undefined4 *)(iVar6 + 0x20) = 8;\n    break;" case number_literal : (expression_statement "*(undefined4 *)(iVar6 + 0x20) = 8;" (assignment_expression "*(undefined4 *)(iVar6 + 0x20) = 8" (pointer_expression "*(undefined4 *)(iVar6 + 0x20)" * (cast_expression "(undefined4 *)(iVar6 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n    *(undefined4 *)(iVar6 + 0x20) = 0x10;\n    break;" case number_literal : (expression_statement "*(undefined4 *)(iVar6 + 0x20) = 0x10;" (assignment_expression "*(undefined4 *)(iVar6 + 0x20) = 0x10" (pointer_expression "*(undefined4 *)(iVar6 + 0x20)" * (cast_expression "(undefined4 *)(iVar6 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:" case number_literal :) (case_statement "case 6:\n    *(undefined4 *)(iVar6 + 0x20) = 0x20;\n    break;" case number_literal : (expression_statement "*(undefined4 *)(iVar6 + 0x20) = 0x20;" (assignment_expression "*(undefined4 *)(iVar6 + 0x20) = 0x20" (pointer_expression "*(undefined4 *)(iVar6 + 0x20)" * (cast_expression "(undefined4 *)(iVar6 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n    pcVar17 = "Unsupported band format";\n    uVar8 = 0x1bb;\n    goto LAB_0028b9a2;" default : (expression_statement "pcVar17 = "Unsupported band format";" (assignment_expression "pcVar17 = "Unsupported band format"" identifier = (string_literal ""Unsupported band format"" " string_content ")) ;) (expression_statement "uVar8 = 0x1bb;" (assignment_expression "uVar8 = 0x1bb" identifier = number_literal) ;) (goto_statement "goto LAB_0028b9a2;" goto statement_identifier ;)) (case_statement "case 8:\n    *(undefined4 *)(iVar6 + 0x20) = 0x40;" case number_literal : (expression_statement "*(undefined4 *)(iVar6 + 0x20) = 0x40;" (assignment_expression "*(undefined4 *)(iVar6 + 0x20) = 0x40" (pointer_expression "*(undefined4 *)(iVar6 + 0x20)" * (cast_expression "(undefined4 *)(iVar6 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) = number_literal) ;)) })) (expression_statement "iVar7 = ReadBlobLong(iVar6);" (assignment_expression "iVar7 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "uVar11 = ReadBlobLong(iVar6);" (assignment_expression "uVar11 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (switch_statement "switch(uVar11) {\n  default:\n    pcVar17 = "Unsupported colorspace";\n    uVar8 = 0x1e2;\n    goto LAB_0028b9a2;\n  case 1:\n  case 0x1a:\n    SetImageColorspace(iVar6,3,param_2);\n    if (uVar9 == 2) {\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    break;\n  case 0xf:\n    SetImageColorspace(iVar6,2,param_2);\n    if (uVar9 == 5) {\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    goto code_r0x0028b9e4;\n  case 0x11:\n  case 0x19:\n    SetImageColorspace(iVar6,0x15,param_2);\n    if (uVar9 == 4) goto code_r0x0028bb8c;\n    break;\n  case 0x16:\n    SetImageColorspace(iVar6,0x17,param_2);\n    if (uVar9 == 4) goto code_r0x0028bbbc;\ncode_r0x0028b9e4:\n    SetImageBackgroundColor(iVar6,param_2);\n    *(undefined4 *)(iVar6 + 0x1dc) = 2;\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    fVar2 = DAT_002aa50c;\n    *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n    goto code_r0x0028ba52;\n  }" switch (parenthesized_expression "(uVar11)" ( identifier )) (compound_statement "{\n  default:\n    pcVar17 = "Unsupported colorspace";\n    uVar8 = 0x1e2;\n    goto LAB_0028b9a2;\n  case 1:\n  case 0x1a:\n    SetImageColorspace(iVar6,3,param_2);\n    if (uVar9 == 2) {\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    break;\n  case 0xf:\n    SetImageColorspace(iVar6,2,param_2);\n    if (uVar9 == 5) {\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    goto code_r0x0028b9e4;\n  case 0x11:\n  case 0x19:\n    SetImageColorspace(iVar6,0x15,param_2);\n    if (uVar9 == 4) goto code_r0x0028bb8c;\n    break;\n  case 0x16:\n    SetImageColorspace(iVar6,0x17,param_2);\n    if (uVar9 == 4) goto code_r0x0028bbbc;\ncode_r0x0028b9e4:\n    SetImageBackgroundColor(iVar6,param_2);\n    *(undefined4 *)(iVar6 + 0x1dc) = 2;\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    fVar2 = DAT_002aa50c;\n    *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n    goto code_r0x0028ba52;\n  }" { (case_statement "default:\n    pcVar17 = "Unsupported colorspace";\n    uVar8 = 0x1e2;\n    goto LAB_0028b9a2;" default : (expression_statement "pcVar17 = "Unsupported colorspace";" (assignment_expression "pcVar17 = "Unsupported colorspace"" identifier = (string_literal ""Unsupported colorspace"" " string_content ")) ;) (expression_statement "uVar8 = 0x1e2;" (assignment_expression "uVar8 = 0x1e2" identifier = number_literal) ;) (goto_statement "goto LAB_0028b9a2;" goto statement_identifier ;)) (case_statement "case 1:" case number_literal :) (case_statement "case 0x1a:\n    SetImageColorspace(iVar6,3,param_2);\n    if (uVar9 == 2) {\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    break;" case number_literal : (expression_statement "SetImageColorspace(iVar6,3,param_2);" (call_expression "SetImageColorspace(iVar6,3,param_2)" identifier (argument_list "(iVar6,3,param_2)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (uVar9 == 2) {\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }" if (parenthesized_expression "(uVar9 == 2)" ( (binary_expression "uVar9 == 2" identifier == number_literal) )) (compound_statement "{\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }" { (labeled_statement "code_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;" statement_identifier : (expression_statement "*(undefined4 *)(iVar6 + 0x294) = 4;" (assignment_expression "*(undefined4 *)(iVar6 + 0x294) = 4" (pointer_expression "*(undefined4 *)(iVar6 + 0x294)" * (cast_expression "(undefined4 *)(iVar6 + 0x294)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x294)" ( (binary_expression "iVar6 + 0x294" identifier + number_literal) )))) = number_literal) ;)) })) (break_statement "break;" break ;)) (case_statement "case 0xf:\n    SetImageColorspace(iVar6,2,param_2);\n    if (uVar9 == 5) {\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    goto code_r0x0028b9e4;" case number_literal : (expression_statement "SetImageColorspace(iVar6,2,param_2);" (call_expression "SetImageColorspace(iVar6,2,param_2)" identifier (argument_list "(iVar6,2,param_2)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (uVar9 == 5) {\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }" if (parenthesized_expression "(uVar9 == 5)" ( (binary_expression "uVar9 == 5" identifier == number_literal) )) (compound_statement "{\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }" { (labeled_statement "code_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;" statement_identifier : (expression_statement "*(undefined4 *)(iVar6 + 0x294) = 4;" (assignment_expression "*(undefined4 *)(iVar6 + 0x294) = 4" (pointer_expression "*(undefined4 *)(iVar6 + 0x294)" * (cast_expression "(undefined4 *)(iVar6 + 0x294)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x294)" ( (binary_expression "iVar6 + 0x294" identifier + number_literal) )))) = number_literal) ;)) })) (goto_statement "goto code_r0x0028b9e4;" goto statement_identifier ;)) (case_statement "case 0x11:" case number_literal :) (case_statement "case 0x19:\n    SetImageColorspace(iVar6,0x15,param_2);\n    if (uVar9 == 4) goto code_r0x0028bb8c;\n    break;" case number_literal : (expression_statement "SetImageColorspace(iVar6,0x15,param_2);" (call_expression "SetImageColorspace(iVar6,0x15,param_2)" identifier (argument_list "(iVar6,0x15,param_2)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (uVar9 == 4) goto code_r0x0028bb8c;" if (parenthesized_expression "(uVar9 == 4)" ( (binary_expression "uVar9 == 4" identifier == number_literal) )) (goto_statement "goto code_r0x0028bb8c;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 0x16:\n    SetImageColorspace(iVar6,0x17,param_2);\n    if (uVar9 == 4) goto code_r0x0028bbbc;\ncode_r0x0028b9e4:\n    SetImageBackgroundColor(iVar6,param_2);\n    *(undefined4 *)(iVar6 + 0x1dc) = 2;\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    fVar2 = DAT_002aa50c;\n    *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n    goto code_r0x0028ba52;" case number_literal : (expression_statement "SetImageColorspace(iVar6,0x17,param_2);" (call_expression "SetImageColorspace(iVar6,0x17,param_2)" identifier (argument_list "(iVar6,0x17,param_2)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (uVar9 == 4) goto code_r0x0028bbbc;" if (parenthesized_expression "(uVar9 == 4)" ( (binary_expression "uVar9 == 4" identifier == number_literal) )) (goto_statement "goto code_r0x0028bbbc;" goto statement_identifier ;)) (labeled_statement "code_r0x0028b9e4:\n    SetImageBackgroundColor(iVar6,param_2);" statement_identifier : (expression_statement "SetImageBackgroundColor(iVar6,param_2);" (call_expression "SetImageBackgroundColor(iVar6,param_2)" identifier (argument_list "(iVar6,param_2)" ( identifier , identifier ))) ;)) (expression_statement "*(undefined4 *)(iVar6 + 0x1dc) = 2;" (assignment_expression "*(undefined4 *)(iVar6 + 0x1dc) = 2" (pointer_expression "*(undefined4 *)(iVar6 + 0x1dc)" * (cast_expression "(undefined4 *)(iVar6 + 0x1dc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1dc)" ( (binary_expression "iVar6 + 0x1dc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "fVar2 = DAT_002aa50c;" (assignment_expression "fVar2 = DAT_002aa50c" identifier = identifier) ;) (expression_statement "*(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);" (assignment_expression "*(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c)" (pointer_expression "*(double *)(iVar6 + 0x1f0)" * (cast_expression "(double *)(iVar6 + 0x1f0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1f0)" ( (binary_expression "iVar6 + 0x1f0" identifier + number_literal) )))) = (cast_expression "(double)(lVar16 * (longdouble)DAT_002aa50c)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(lVar16 * (longdouble)DAT_002aa50c)" ( (binary_expression "lVar16 * (longdouble)DAT_002aa50c" identifier * (cast_expression "(longdouble)DAT_002aa50c" ( (type_descriptor "longdouble" type_identifier) ) identifier)) )))) ;) (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "*(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);" (assignment_expression "*(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16)" (pointer_expression "*(double *)(iVar6 + 0x1f8)" * (cast_expression "(double *)(iVar6 + 0x1f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1f8)" ( (binary_expression "iVar6 + 0x1f8" identifier + number_literal) )))) = (cast_expression "(double)((longdouble)fVar2 * lVar16)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((longdouble)fVar2 * lVar16)" ( (binary_expression "(longdouble)fVar2 * lVar16" (cast_expression "(longdouble)fVar2" ( (type_descriptor "longdouble" type_identifier) ) identifier) * identifier) )))) ;) (expression_statement "ReadBlobLongLong(iVar6);" (call_expression "ReadBlobLongLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (expression_statement "ReadBlobLongLong(iVar6);" (call_expression "ReadBlobLongLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (expression_statement "ReadBlobLongLong(iVar6);" (call_expression "ReadBlobLongLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (if_statement "if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;" if (parenthesized_expression "(*(int *)(param_1 + 0x1bc) != 0)" ( (binary_expression "*(int *)(param_1 + 0x1bc) != 0" (pointer_expression "*(int *)(param_1 + 0x1bc)" * (cast_expression "(int *)(param_1 + 0x1bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1bc)" ( (binary_expression "param_1 + 0x1bc" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0028b7fb;" goto statement_identifier ;)) (goto_statement "goto code_r0x0028ba52;" goto statement_identifier ;)) })) (expression_statement "SetImageBackgroundColor(iVar6,param_2);" (call_expression "SetImageBackgroundColor(iVar6,param_2)" identifier (argument_list "(iVar6,param_2)" ( identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x1dc) = 2;" (assignment_expression "*(undefined4 *)(iVar6 + 0x1dc) = 2" (pointer_expression "*(undefined4 *)(iVar6 + 0x1dc)" * (cast_expression "(undefined4 *)(iVar6 + 0x1dc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1dc)" ( (binary_expression "iVar6 + 0x1dc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "fVar2 = DAT_002aa50c;" (assignment_expression "fVar2 = DAT_002aa50c" identifier = identifier) ;) (expression_statement "*(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);" (assignment_expression "*(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c)" (pointer_expression "*(double *)(iVar6 + 0x1f0)" * (cast_expression "(double *)(iVar6 + 0x1f0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1f0)" ( (binary_expression "iVar6 + 0x1f0" identifier + number_literal) )))) = (cast_expression "(double)(lVar16 * (longdouble)DAT_002aa50c)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(lVar16 * (longdouble)DAT_002aa50c)" ( (binary_expression "lVar16 * (longdouble)DAT_002aa50c" identifier * (cast_expression "(longdouble)DAT_002aa50c" ( (type_descriptor "longdouble" type_identifier) ) identifier)) )))) ;) (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "*(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);" (assignment_expression "*(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16)" (pointer_expression "*(double *)(iVar6 + 0x1f8)" * (cast_expression "(double *)(iVar6 + 0x1f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1f8)" ( (binary_expression "iVar6 + 0x1f8" identifier + number_literal) )))) = (cast_expression "(double)((longdouble)fVar2 * lVar16)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((longdouble)fVar2 * lVar16)" ( (binary_expression "(longdouble)fVar2 * lVar16" (cast_expression "(longdouble)fVar2" ( (type_descriptor "longdouble" type_identifier) ) identifier) * identifier) )))) ;) (expression_statement "ReadBlobLongLong(iVar6);" (call_expression "ReadBlobLongLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (expression_statement "ReadBlobLongLong(iVar6);" (call_expression "ReadBlobLongLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (expression_statement "ReadBlobLongLong(iVar6);" (call_expression "ReadBlobLongLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (if_statement "if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;" if (parenthesized_expression "(*(int *)(param_1 + 0x1bc) != 0)" ( (binary_expression "*(int *)(param_1 + 0x1bc) != 0" (pointer_expression "*(int *)(param_1 + 0x1bc)" * (cast_expression "(int *)(param_1 + 0x1bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1bc)" ( (binary_expression "param_1 + 0x1bc" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0028b7fb;" goto statement_identifier ;)) (if_statement "if (uVar11 < 0x1b) {\ncode_r0x0028ba52:\n    uVar11 = 1 << ((byte)uVar11 & 0x1f);\n    if (((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))) goto code_r0x0028b983;\n    if (4 < uVar9 - 1) {\n      pcVar17 = "Unsupported number of channels";\n      uVar8 = 500;\n      goto LAB_0028b9a2;\n    }\n    if (iVar7 != 0) {\n      pcVar17 = "Unsupported coding";\n      uVar8 = 0x1f8;\n      goto LAB_0028b9a2;\n    }\n    if (0 < *(int *)(iVar6 + 0x1c)) {\n      iStack_1058 = 0;\n      do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));\n    }\n    bVar3 = true;\ncode_r0x0028c2d7:\n    iStack_1024 = 0;\n    while (iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0) {\n      auStack_1020[iVar7] = 0;\n      if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }\n    }\n    if (iStack_1024 != 0) {\n      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);\n      iStack_1024 = RelinquishMagickMemory(iStack_1024);\n    }\n    CloseBlob(iVar6);\n    if (bVar3) goto LAB_0028b7fb;\n  }\n  else {\ncode_r0x0028b983:\n    pcVar17 = "Unsupported combination of band format and colorspace";\n    uVar8 = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;\nLAB_0028b7e8:\n    CloseBlob(iVar6);\n    DestroyImageList(iVar6);\n  }" if (parenthesized_expression "(uVar11 < 0x1b)" ( (binary_expression "uVar11 < 0x1b" identifier < number_literal) )) (compound_statement "{\ncode_r0x0028ba52:\n    uVar11 = 1 << ((byte)uVar11 & 0x1f);\n    if (((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))) goto code_r0x0028b983;\n    if (4 < uVar9 - 1) {\n      pcVar17 = "Unsupported number of channels";\n      uVar8 = 500;\n      goto LAB_0028b9a2;\n    }\n    if (iVar7 != 0) {\n      pcVar17 = "Unsupported coding";\n      uVar8 = 0x1f8;\n      goto LAB_0028b9a2;\n    }\n    if (0 < *(int *)(iVar6 + 0x1c)) {\n      iStack_1058 = 0;\n      do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));\n    }\n    bVar3 = true;\ncode_r0x0028c2d7:\n    iStack_1024 = 0;\n    while (iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0) {\n      auStack_1020[iVar7] = 0;\n      if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }\n    }\n    if (iStack_1024 != 0) {\n      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);\n      iStack_1024 = RelinquishMagickMemory(iStack_1024);\n    }\n    CloseBlob(iVar6);\n    if (bVar3) goto LAB_0028b7fb;\n  }" { (labeled_statement "code_r0x0028ba52:\n    uVar11 = 1 << ((byte)uVar11 & 0x1f);" statement_identifier : (expression_statement "uVar11 = 1 << ((byte)uVar11 & 0x1f);" (assignment_expression "uVar11 = 1 << ((byte)uVar11 & 0x1f)" identifier = (binary_expression "1 << ((byte)uVar11 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;)) (if_statement "if (((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))) goto code_r0x0028b983;" if (parenthesized_expression "(((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        )))" ( (binary_expression "((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))" (parenthesized_expression "((uVar11 & 0x428002) == 0)" ( (binary_expression "(uVar11 & 0x428002) == 0" (parenthesized_expression "(uVar11 & 0x428002)" ( (binary_expression "uVar11 & 0x428002" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))" ( (parenthesized_expression "(((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        )" ( (binary_expression "((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)" (parenthesized_expression "((uVar11 & 0x6000000) == 0 || (8 < uVar10))" ( (binary_expression "(uVar11 & 0x6000000) == 0 || (8 < uVar10)" (binary_expression "(uVar11 & 0x6000000) == 0" (parenthesized_expression "(uVar11 & 0x6000000)" ( (binary_expression "uVar11 & 0x6000000" identifier & number_literal) )) == number_literal) || (parenthesized_expression "(8 < uVar10)" ( (binary_expression "8 < uVar10" number_literal < identifier) ))) )) || (parenthesized_expression "((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)" ( (binary_expression "(1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0" (parenthesized_expression "(1 << ((byte)uVar10 & 0x1f) & 0x17cU)" ( (binary_expression "1 << ((byte)uVar10 & 0x1f) & 0x17cU" (binary_expression "1 << ((byte)uVar10 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar10 & 0x1f)" ( (binary_expression "(byte)uVar10 & 0x1f" (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) == number_literal) ))) )) ))) )) (goto_statement "goto code_r0x0028b983;" goto statement_identifier ;)) (if_statement "if (4 < uVar9 - 1) {\n      pcVar17 = "Unsupported number of channels";\n      uVar8 = 500;\n      goto LAB_0028b9a2;\n    }" if (parenthesized_expression "(4 < uVar9 - 1)" ( (binary_expression "4 < uVar9 - 1" number_literal < (binary_expression "uVar9 - 1" identifier - number_literal)) )) (compound_statement "{\n      pcVar17 = "Unsupported number of channels";\n      uVar8 = 500;\n      goto LAB_0028b9a2;\n    }" { (expression_statement "pcVar17 = "Unsupported number of channels";" (assignment_expression "pcVar17 = "Unsupported number of channels"" identifier = (string_literal ""Unsupported number of channels"" " string_content ")) ;) (expression_statement "uVar8 = 500;" (assignment_expression "uVar8 = 500" identifier = number_literal) ;) (goto_statement "goto LAB_0028b9a2;" goto statement_identifier ;) })) (if_statement "if (iVar7 != 0) {\n      pcVar17 = "Unsupported coding";\n      uVar8 = 0x1f8;\n      goto LAB_0028b9a2;\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar17 = "Unsupported coding";\n      uVar8 = 0x1f8;\n      goto LAB_0028b9a2;\n    }" { (expression_statement "pcVar17 = "Unsupported coding";" (assignment_expression "pcVar17 = "Unsupported coding"" identifier = (string_literal ""Unsupported coding"" " string_content ")) ;) (expression_statement "uVar8 = 0x1f8;" (assignment_expression "uVar8 = 0x1f8" identifier = number_literal) ;) (goto_statement "goto LAB_0028b9a2;" goto statement_identifier ;) })) (if_statement "if (0 < *(int *)(iVar6 + 0x1c)) {\n      iStack_1058 = 0;\n      do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));\n    }" if (parenthesized_expression "(0 < *(int *)(iVar6 + 0x1c))" ( (binary_expression "0 < *(int *)(iVar6 + 0x1c)" number_literal < (pointer_expression "*(int *)(iVar6 + 0x1c)" * (cast_expression "(int *)(iVar6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n      iStack_1058 = 0;\n      do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));\n    }" { (expression_statement "iStack_1058 = 0;" (assignment_expression "iStack_1058 = 0" identifier = number_literal) ;) (do_statement "do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));" do (compound_statement "{\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      }" { (expression_statement "iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);" (assignment_expression "iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2)" identifier = (call_expression "GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2)" identifier (argument_list "(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" * (cast_expression "(undefined4 *)(iVar6 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }" { (labeled_statement "code_r0x0028c2d0:\n          bVar3 = false;" statement_identifier : (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;)) (goto_statement "goto code_r0x0028c2d7;" goto statement_identifier ;) })) (if_statement "if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }" if (parenthesized_expression "(0 < *(int *)(iVar6 + 0x18))" ( (binary_expression "0 < *(int *)(iVar6 + 0x18)" number_literal < (pointer_expression "*(int *)(iVar6 + 0x18)" * (cast_expression "(int *)(iVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }" { (expression_statement "uVar12 = uVar11 & 0x6000000;" (assignment_expression "uVar12 = uVar11 & 0x6000000" identifier = (binary_expression "uVar11 & 0x6000000" identifier & number_literal)) ;) (expression_statement "uVar15 = uVar11 & 0x408000;" (assignment_expression "uVar15 = uVar11 & 0x408000" identifier = (binary_expression "uVar11 & 0x408000" identifier & number_literal)) ;) (expression_statement "local_106c = 0;" (assignment_expression "local_106c = 0" identifier = number_literal) ;) (do_statement "do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));" do (compound_statement "{\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          }" { (if_statement "if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }" { (switch_statement "switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;" case number_literal : (expression_statement "bVar4 = ReadBlobByte(iVar6);" (assignment_expression "bVar4 = ReadBlobByte(iVar6)" identifier = (call_expression "ReadBlobByte(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0" identifier = (binary_expression "(longdouble)bVar4 * (longdouble)DAT_002a7ff0" (cast_expression "(longdouble)bVar4" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (cast_expression "(longdouble)DAT_002a7ff0" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;" case number_literal : (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)uVar5;" (assignment_expression "lVar16 = (longdouble)uVar5" identifier = (cast_expression "(longdouble)uVar5" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;" case number_literal : (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" identifier = (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" ( (type_descriptor "longdouble" type_identifier) ) identifier) / (cast_expression "(longdouble)DAT_002a7fec" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;" default : (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;" (assignment_expression "*(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0" (pointer_expression "*(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8)" * (cast_expression "(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 8) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 8) * 8" identifier + (binary_expression "*(int *)(iVar14 + 8) * 8" (pointer_expression "*(int *)(iVar14 + 8)" * (cast_expression "(int *)(iVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) )))) * number_literal)) )))) = number_literal) ;) (if_statement "if (2 < uVar9) goto code_r0x0028bd09;" if (parenthesized_expression "(2 < uVar9)" ( (binary_expression "2 < uVar9" number_literal < identifier) )) (goto_statement "goto code_r0x0028bd09;" goto statement_identifier ;)) (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" identifier = (cast_expression "(longdouble)0" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;) (goto_statement "goto code_r0x0028bc37;" goto statement_identifier ;)) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;)) })) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 8) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 8) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 8) * 8" identifier + (binary_expression "*(int *)(iVar14 + 8) * 8" (pointer_expression "*(int *)(iVar14 + 8)" * (cast_expression "(int *)(iVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)lVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (uVar9 < 3) goto code_r0x0028bc37;" if (parenthesized_expression "(uVar9 < 3)" ( (binary_expression "uVar9 < 3" identifier < number_literal) )) (goto_statement "goto code_r0x0028bc37;" goto statement_identifier ;)) (labeled_statement "code_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" statement_identifier : (switch_statement "switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;" case number_literal : (expression_statement "bVar4 = ReadBlobByte(iVar6);" (assignment_expression "bVar4 = ReadBlobByte(iVar6)" identifier = (call_expression "ReadBlobByte(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0" identifier = (binary_expression "(longdouble)bVar4 * (longdouble)DAT_002a7ff0" (cast_expression "(longdouble)bVar4" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (cast_expression "(longdouble)DAT_002a7ff0" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;" case number_literal : (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)uVar5;" (assignment_expression "lVar16 = (longdouble)uVar5" identifier = (cast_expression "(longdouble)uVar5" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;" case number_literal : (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" identifier = (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" ( (type_descriptor "longdouble" type_identifier) ) identifier) / (cast_expression "(longdouble)DAT_002a7fec" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;" default : (expression_statement "*(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;" (assignment_expression "*(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0" (pointer_expression "*(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" * (cast_expression "(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x14) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar14 + 0x14) * 8" (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) * number_literal)) )))) = number_literal) ;) (goto_statement "goto code_r0x0028be31;" goto statement_identifier ;)) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;)) }))) (expression_statement "*(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8)" ( (binary_expression "iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8" identifier + (binary_expression "*(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(iVar6 + 0x2a8) + 0x14)" * (cast_expression "(int *)(*(int *)(iVar6 + 0x2a8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 0x2a8) + 0x14)" ( (binary_expression "*(int *)(iVar6 + 0x2a8) + 0x14" (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)lVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (labeled_statement "code_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" statement_identifier : (switch_statement "switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                goto code_r0x0028be50;" case number_literal : (goto_statement "goto code_r0x0028be50;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                goto code_r0x0028bed8;" case number_literal : (goto_statement "goto code_r0x0028bed8;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;" case number_literal : (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" identifier = (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" ( (type_descriptor "longdouble" type_identifier) ) identifier) / (cast_expression "(longdouble)DAT_002a7fec" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                goto code_r0x0028c020;" default : (goto_statement "goto code_r0x0028c020;" goto statement_identifier ;)) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;)) }))) (goto_statement "goto code_r0x0028be75;" goto statement_identifier ;) })) (if_statement "if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }" if (parenthesized_expression "((uVar11 & 0x20002) == 0)" ( (binary_expression "(uVar11 & 0x20002) == 0" (parenthesized_expression "(uVar11 & 0x20002)" ( (binary_expression "uVar11 & 0x20002" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }" { (if_statement "if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }" { (labeled_statement "code_r0x0028bc20:\n                lVar16 = (longdouble)0;" statement_identifier : (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" identifier = (cast_expression "(longdouble)0" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;)) (goto_statement "goto code_r0x0028bc22;" goto statement_identifier ;) })) (switch_statement "switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" { (case_statement "default:\n                goto code_r0x0028bc20;" default : (goto_statement "goto code_r0x0028bc20;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;" case number_literal : (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;" case number_literal : (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (goto_statement "goto code_r0x0028c3ba;" goto statement_identifier ;)) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (labeled_statement "code_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);" statement_identifier : (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" identifier = (cast_expression "(uint)ROUND(lVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;))) })) (expression_statement "lVar16 = (longdouble)(uStack_103c & 0xffff);" (assignment_expression "lVar16 = (longdouble)(uStack_103c & 0xffff)" identifier = (call_expression "(longdouble)(uStack_103c & 0xffff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uStack_103c & 0xffff)" ( (binary_expression "uStack_103c & 0xffff" identifier & number_literal) )))) ;) (goto_statement "goto code_r0x0028bc22;" goto statement_identifier ;) })) (switch_statement "switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;" case number_literal : (expression_statement "uStack_103e = ReadBlobByte(iVar6);" (assignment_expression "uStack_103e = ReadBlobByte(iVar6)" identifier = (call_expression "ReadBlobByte(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;" case number_literal : (expression_statement "uStack_103e = ReadBlobShort(iVar6);" (assignment_expression "uStack_103e = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;" case number_literal : (expression_statement "uStack_103e = ReadBlobLong(iVar6);" (assignment_expression "uStack_103e = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (goto_statement "goto code_r0x0028c07a;" goto statement_identifier ;)) (case_statement "default:\n              goto code_r0x0028bc20;" default : (goto_statement "goto code_r0x0028bc20;" goto statement_identifier ;)) (case_statement "case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (labeled_statement "code_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);" statement_identifier : (expression_statement "uStack_103e = (ushort)ROUND(lVar16);" (assignment_expression "uStack_103e = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;))) })) (expression_statement "lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0" identifier = (binary_expression "(longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0" (call_expression "(longdouble)(uStack_103e & 0xff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uStack_103e & 0xff)" ( (binary_expression "uStack_103e & 0xff" identifier & number_literal) ))) * (cast_expression "(longdouble)DAT_002a7ff0" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (labeled_statement "code_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);" statement_identifier : (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;)) (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 8) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 8) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 8) * 8" identifier + (binary_expression "*(int *)(iVar14 + 8) * 8" (pointer_expression "*(int *)(iVar14 + 8)" * (cast_expression "(int *)(iVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)lVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }" if (parenthesized_expression "(uVar9 < 3)" ( (binary_expression "uVar9 < 3" identifier < number_literal) )) (compound_statement "{\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }" { (labeled_statement "code_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;" statement_identifier : (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x14) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar14 + 0x14) * 8" (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)lVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;)) (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x20) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar14 + 0x20) * 8" (pointer_expression "*(int *)(iVar14 + 0x20)" * (cast_expression "(int *)(iVar14 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)lVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }" if (parenthesized_expression "(uVar9 == 2)" ( (binary_expression "uVar9 == 2" identifier == number_literal) )) (compound_statement "{\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }" { (if_statement "if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }" { (switch_statement "switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                    goto code_r0x0028c600;" case number_literal : (goto_statement "goto code_r0x0028c600;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                    goto code_r0x0028c630;" case number_literal : (goto_statement "goto code_r0x0028c630;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                    goto code_r0x0028c6a4;" case number_literal : (goto_statement "goto code_r0x0028c6a4;" goto statement_identifier ;)) (case_statement "case 6:\n                    goto code_r0x0028c67f;" case number_literal : (goto_statement "goto code_r0x0028c67f;" goto statement_identifier ;)) (case_statement "default:\n                    goto code_r0x0028c1d2;" default : (goto_statement "goto code_r0x0028c1d2;" goto statement_identifier ;)) (case_statement "case 8:\n                    goto code_r0x0028c65a;" case number_literal : (goto_statement "goto code_r0x0028c65a;" goto statement_identifier ;)) })) })) (if_statement "if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }" if (parenthesized_expression "((uVar11 & 0x20002) != 0)" ( (binary_expression "(uVar11 & 0x20002) != 0" (parenthesized_expression "(uVar11 & 0x20002)" ( (binary_expression "uVar11 & 0x20002" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }" { (switch_statement "switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                    goto code_r0x0028c600;" case number_literal : (goto_statement "goto code_r0x0028c600;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                    goto code_r0x0028c7e6;" case number_literal : (goto_statement "goto code_r0x0028c7e6;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                    goto code_r0x0028c82c;" case number_literal : (goto_statement "goto code_r0x0028c82c;" goto statement_identifier ;)) (case_statement "case 6:\n                    goto code_r0x0028c7f8;" case number_literal : (goto_statement "goto code_r0x0028c7f8;" goto statement_identifier ;)) (case_statement "default:\n                    goto code_r0x0028c1d2;" default : (goto_statement "goto code_r0x0028c1d2;" goto statement_identifier ;)) (case_statement "case 8:\n                    goto code_r0x0028c83e;" case number_literal : (goto_statement "goto code_r0x0028c83e;" goto statement_identifier ;)) })) })) (if_statement "if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }" { (switch_statement "switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }" { (case_statement "default:\n                    break;" default : (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                    goto code_r0x0028c630;" case number_literal : (goto_statement "goto code_r0x0028c630;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                    goto code_r0x0028ca3d;" case number_literal : (goto_statement "goto code_r0x0028ca3d;" goto statement_identifier ;)) (case_statement "case 6:\n                    goto code_r0x0028ca4f;" case number_literal : (goto_statement "goto code_r0x0028ca4f;" goto statement_identifier ;)) (case_statement "case 8:\n                    goto code_r0x0028ca82;" case number_literal : (goto_statement "goto code_r0x0028ca82;" goto statement_identifier ;)) })) })) (goto_statement "goto code_r0x0028c1d2;" goto statement_identifier ;) })) (goto_statement "goto code_r0x0028bc60;" goto statement_identifier ;) })) (if_statement "if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }" if (parenthesized_expression "((uVar11 & 0x20002) == 0)" ( (binary_expression "(uVar11 & 0x20002) == 0" (parenthesized_expression "(uVar11 & 0x20002)" ( (binary_expression "uVar11 & 0x20002" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }" { (if_statement "if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }" { (labeled_statement "code_r0x0028c180:\n                dVar1 = 0.0;" statement_identifier : (expression_statement "dVar1 = 0.0;" (assignment_expression "dVar1 = 0.0" identifier = number_literal) ;)) (goto_statement "goto code_r0x0028c182;" goto statement_identifier ;) })) (switch_statement "switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" { (case_statement "default:\n                goto code_r0x0028c180;" default : (goto_statement "goto code_r0x0028c180;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;" case number_literal : (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;" case number_literal : (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (goto_statement "goto code_r0x0028c774;" goto statement_identifier ;)) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (labeled_statement "code_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);" statement_identifier : (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" identifier = (cast_expression "(uint)ROUND(lVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;))) })) (expression_statement "dVar1 = (double)(uStack_103c & 0xffff);" (assignment_expression "dVar1 = (double)(uStack_103c & 0xffff)" identifier = (cast_expression "(double)(uStack_103c & 0xffff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uStack_103c & 0xffff)" ( (binary_expression "uStack_103c & 0xffff" identifier & number_literal) )))) ;) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (labeled_statement "code_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;" statement_identifier : (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x14) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar14 + 0x14) * 8" (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) * number_literal)) )))) = identifier) ;)) (if_statement "if (uVar12 == 0) goto code_r0x0028c020;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x0028c020;" goto statement_identifier ;)) (switch_statement "switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" { (case_statement "default:\n                goto code_r0x0028c020;" default : (goto_statement "goto code_r0x0028c020;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;" case number_literal : (labeled_statement "code_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);" statement_identifier : (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;" case number_literal : (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (goto_statement "goto code_r0x0028c703;" goto statement_identifier ;)) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (labeled_statement "code_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);" statement_identifier : (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" identifier = (cast_expression "(uint)ROUND(lVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;))) })) (expression_statement "lVar16 = (longdouble)(uStack_103c & 0xffff);" (assignment_expression "lVar16 = (longdouble)(uStack_103c & 0xffff)" identifier = (call_expression "(longdouble)(uStack_103c & 0xffff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uStack_103c & 0xffff)" ( (binary_expression "uStack_103c & 0xffff" identifier & number_literal) )))) ;) (goto_statement "goto code_r0x0028be75;" goto statement_identifier ;) })) (switch_statement "switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;" case number_literal : (expression_statement "uStack_103e = ReadBlobByte(iVar6);" (assignment_expression "uStack_103e = ReadBlobByte(iVar6)" identifier = (call_expression "ReadBlobByte(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;" case number_literal : (expression_statement "uStack_103e = ReadBlobShort(iVar6);" (assignment_expression "uStack_103e = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;" case number_literal : (expression_statement "uStack_103e = ReadBlobLong(iVar6);" (assignment_expression "uStack_103e = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (goto_statement "goto code_r0x0028c4c8;" goto statement_identifier ;)) (case_statement "default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;" default : (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" identifier = number_literal) ;) (goto_statement "goto code_r0x0028c4eb;" goto statement_identifier ;)) (case_statement "case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (labeled_statement "code_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);" statement_identifier : (expression_statement "uStack_103e = (ushort)ROUND(lVar16);" (assignment_expression "uStack_103e = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;))) })) (expression_statement "fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;" (assignment_expression "fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0" identifier = (binary_expression "(float)(uStack_103e & 0xff) * DAT_002a7ff0" (cast_expression "(float)(uStack_103e & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uStack_103e & 0xff)" ( (binary_expression "uStack_103e & 0xff" identifier & number_literal) ))) * identifier)) ;) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (labeled_statement "code_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;" statement_identifier : (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x14) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar14 + 0x14) * 8" (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)fVar2" ( (type_descriptor "double" primitive_type) ) identifier)) ;)) (switch_statement "switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;" case number_literal : (labeled_statement "code_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);" statement_identifier : (expression_statement "uVar5 = ReadBlobByte(iVar6);" (assignment_expression "uVar5 = ReadBlobByte(iVar6)" identifier = (call_expression "ReadBlobByte(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;" case number_literal : (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;" case number_literal : (expression_statement "uVar5 = ReadBlobLong(iVar6);" (assignment_expression "uVar5 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;" default : (labeled_statement "code_r0x0028c020:\n              lVar16 = (longdouble)0;" statement_identifier : (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" identifier = (cast_expression "(longdouble)0" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;)) (goto_statement "goto code_r0x0028be75;" goto statement_identifier ;)) (case_statement "case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;)) })) (expression_statement "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" identifier = (binary_expression "(longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" (call_expression "(longdouble)(uVar5 & 0xff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * (cast_expression "(longdouble)DAT_002a7ff0" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (labeled_statement "code_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);" statement_identifier : (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;)) (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x20) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar14 + 0x20) * 8" (pointer_expression "*(int *)(iVar14 + 0x20)" * (cast_expression "(int *)(iVar14 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)lVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }" if (parenthesized_expression "(uVar9 == 4)" ( (binary_expression "uVar9 == 4" identifier == number_literal) )) (compound_statement "{\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }" { (if_statement "if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }" if (parenthesized_expression "(*(int *)(iVar6 + 4) == 2)" ( (binary_expression "*(int *)(iVar6 + 4) == 2" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }" { (if_statement "if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (compound_statement "{\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }" { (if_statement "if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }" if (parenthesized_expression "((uVar11 & 0x20002) != 0)" ( (binary_expression "(uVar11 & 0x20002) != 0" (parenthesized_expression "(uVar11 & 0x20002)" ( (binary_expression "uVar11 & 0x20002" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }" { (switch_statement "switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                      goto code_r0x0028caae;" case number_literal : (goto_statement "goto code_r0x0028caae;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;" case number_literal : (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;" case number_literal : (expression_statement "uVar5 = ReadBlobLong(iVar6);" (assignment_expression "uVar5 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                      goto code_r0x0028cbef;" default : (goto_statement "goto code_r0x0028cbef;" goto statement_identifier ;)) (case_statement "case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;)) })) (labeled_statement "code_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;" statement_identifier : (expression_statement "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" identifier = (binary_expression "(longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" (call_expression "(longdouble)(uVar5 & 0xff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * (cast_expression "(longdouble)DAT_002a7ff0" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;)) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (goto_statement "goto code_r0x0028cad9;" goto statement_identifier ;) })) (if_statement "if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }" { (switch_statement "switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }" { (case_statement "default:\n                      goto code_r0x0028cbef;" default : (goto_statement "goto code_r0x0028cbef;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                      goto code_r0x0028caef;" case number_literal : (goto_statement "goto code_r0x0028caef;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;" case number_literal : (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (goto_statement "goto code_r0x0028cafc;" goto statement_identifier ;)) (case_statement "case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;)) })) (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" identifier = (cast_expression "(uint)ROUND(lVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;) (goto_statement "goto code_r0x0028cafc;" goto statement_identifier ;) })) (labeled_statement "code_r0x0028cbef:\n                  lVar16 = (longdouble)0;" statement_identifier : (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" identifier = (cast_expression "(longdouble)0" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;)) }) (else_clause "else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }" else (compound_statement "{\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }" { (switch_statement "switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;" case number_literal : (labeled_statement "code_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);" statement_identifier : (expression_statement "uVar5 = ReadBlobByte(iVar6);" (assignment_expression "uVar5 = ReadBlobByte(iVar6)" identifier = (call_expression "ReadBlobByte(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (goto_statement "goto code_r0x0028cabb;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;" case number_literal : (labeled_statement "code_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);" statement_identifier : (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (labeled_statement "code_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);" statement_identifier : (expression_statement "lVar16 = (longdouble)(uStack_103c & 0xffff);" (assignment_expression "lVar16 = (longdouble)(uStack_103c & 0xffff)" identifier = (call_expression "(longdouble)(uStack_103c & 0xffff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uStack_103c & 0xffff)" ( (binary_expression "uStack_103c & 0xffff" identifier & number_literal) )))) ;)) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;" case number_literal : (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" identifier = (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" ( (type_descriptor "longdouble" type_identifier) ) identifier) / (cast_expression "(longdouble)DAT_002a7fec" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                    goto code_r0x0028cbef;" default : (goto_statement "goto code_r0x0028cbef;" goto statement_identifier ;)) (case_statement "case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;)) })) }))) (labeled_statement "code_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }" statement_identifier : (if_statement "if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }" if (parenthesized_expression "(*(int *)(iVar14 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x40) != 0" (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }" { (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x44) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar14 + 0x44) * 8" (pointer_expression "*(int *)(iVar14 + 0x44)" * (cast_expression "(int *)(iVar14 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x44)" ( (binary_expression "iVar14 + 0x44" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)lVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) }))) (goto_statement "goto code_r0x0028bc60;" goto statement_identifier ;) })) (if_statement "if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (compound_statement "{\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }" { (if_statement "if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }" if (parenthesized_expression "((uVar11 & 0x20002) != 0)" ( (binary_expression "(uVar11 & 0x20002) != 0" (parenthesized_expression "(uVar11 & 0x20002)" ( (binary_expression "uVar11 & 0x20002" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }" { (switch_statement "switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                    goto code_r0x0028c600;" case number_literal : (goto_statement "goto code_r0x0028c600;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;" case number_literal : (labeled_statement "code_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);" statement_identifier : (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;" case number_literal : (labeled_statement "code_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);" statement_identifier : (expression_statement "uVar5 = ReadBlobLong(iVar6);" (assignment_expression "uVar5 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (break_statement "break;" break ;)) (case_statement "case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;" case number_literal : (labeled_statement "code_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);" statement_identifier : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;)) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                    goto code_r0x0028c1d2;" default : (goto_statement "goto code_r0x0028c1d2;" goto statement_identifier ;)) (case_statement "case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);" case number_literal : (labeled_statement "code_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);" statement_identifier : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;)) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;)) })) (labeled_statement "code_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;" statement_identifier : (expression_statement "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" identifier = (binary_expression "(longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" (call_expression "(longdouble)(uVar5 & 0xff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * (cast_expression "(longdouble)DAT_002a7ff0" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;)) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (goto_statement "goto code_r0x0028c1d8;" goto statement_identifier ;) })) (if_statement "if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }" { (switch_statement "switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }" { (case_statement "default:\n                    goto code_r0x0028c1d2;" default : (goto_statement "goto code_r0x0028c1d2;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                    goto code_r0x0028c630;" case number_literal : (goto_statement "goto code_r0x0028c630;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;" case number_literal : (labeled_statement "code_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);" statement_identifier : (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (goto_statement "goto code_r0x0028c63d;" goto statement_identifier ;)) (case_statement "case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;" case number_literal : (labeled_statement "code_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);" statement_identifier : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;)) (break_statement "break;" break ;)) (case_statement "case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);" case number_literal : (labeled_statement "code_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);" statement_identifier : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;))) })) (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" identifier = (cast_expression "(uint)ROUND(lVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;) (goto_statement "goto code_r0x0028c63d;" goto statement_identifier ;) })) (labeled_statement "code_r0x0028c1d2:\n                lVar16 = (longdouble)0;" statement_identifier : (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" identifier = (cast_expression "(longdouble)0" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;)) }) (else_clause "else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }" else (compound_statement "{\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }" { (switch_statement "switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;" case number_literal : (labeled_statement "code_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);" statement_identifier : (expression_statement "uVar5 = ReadBlobByte(iVar6);" (assignment_expression "uVar5 = ReadBlobByte(iVar6)" identifier = (call_expression "ReadBlobByte(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (goto_statement "goto code_r0x0028c60d;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;" case number_literal : (labeled_statement "code_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);" statement_identifier : (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (labeled_statement "code_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);" statement_identifier : (expression_statement "lVar16 = (longdouble)(uStack_103c & 0xffff);" (assignment_expression "lVar16 = (longdouble)(uStack_103c & 0xffff)" identifier = (call_expression "(longdouble)(uStack_103c & 0xffff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uStack_103c & 0xffff)" ( (binary_expression "uStack_103c & 0xffff" identifier & number_literal) )))) ;)) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;" case number_literal : (labeled_statement "code_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);" statement_identifier : (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" identifier = (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" ( (type_descriptor "longdouble" type_identifier) ) identifier) / (cast_expression "(longdouble)DAT_002a7fec" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;" case number_literal : (labeled_statement "code_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);" statement_identifier : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;)) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                  goto code_r0x0028c1d2;" default : (goto_statement "goto code_r0x0028c1d2;" goto statement_identifier ;)) (case_statement "case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;" case number_literal : (labeled_statement "code_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);" statement_identifier : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;)) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;)) })) }))) (goto_statement "goto code_r0x0028c1d8;" goto statement_identifier ;) })) (if_statement "if (uVar9 != 5) goto code_r0x0028bc60;" if (parenthesized_expression "(uVar9 != 5)" ( (binary_expression "uVar9 != 5" identifier != number_literal) )) (goto_statement "goto code_r0x0028bc60;" goto statement_identifier ;)) (if_statement "if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }" { (switch_statement "switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;" case number_literal : (expression_statement "bVar4 = ReadBlobByte(iVar6);" (assignment_expression "bVar4 = ReadBlobByte(iVar6)" identifier = (call_expression "ReadBlobByte(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0" identifier = (binary_expression "(longdouble)bVar4 * (longdouble)DAT_002a7ff0" (cast_expression "(longdouble)bVar4" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (cast_expression "(longdouble)DAT_002a7ff0" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;" case number_literal : (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)uVar5;" (assignment_expression "lVar16 = (longdouble)uVar5" identifier = (cast_expression "(longdouble)uVar5" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;" case number_literal : (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" identifier = (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" ( (type_descriptor "longdouble" type_identifier) ) identifier) / (cast_expression "(longdouble)DAT_002a7fec" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (if_statement "if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;" if (parenthesized_expression "(*(int *)(iVar14 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x40) != 0" (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto code_r0x0028cba5;" goto statement_identifier ;)) (goto_statement "goto code_r0x0028c8f8;" goto statement_identifier ;)) (case_statement "default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;" default : (if_statement "if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }" if (parenthesized_expression "(*(int *)(iVar14 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x40) != 0" (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }" { (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" identifier = (cast_expression "(longdouble)0" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;) (goto_statement "goto code_r0x0028cba5;" goto statement_identifier ;) })) (goto_statement "goto code_r0x0028c951;" goto statement_identifier ;)) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (if_statement "if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;" if (parenthesized_expression "(*(int *)(iVar14 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x40) != 0" (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto code_r0x0028cba5;" goto statement_identifier ;)) (goto_statement "goto code_r0x0028c89f;" goto statement_identifier ;)) })) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;" if (parenthesized_expression "(*(int *)(iVar14 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x40) != 0" (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto code_r0x0028cba5;" goto statement_identifier ;)) (goto_statement "goto code_r0x0028c951;" goto statement_identifier ;) })) (if_statement "if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }" if (parenthesized_expression "((uVar11 & 0x20002) == 0)" ( (binary_expression "(uVar11 & 0x20002) == 0" (parenthesized_expression "(uVar11 & 0x20002)" ( (binary_expression "uVar11 & 0x20002" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }" { (if_statement "if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }" { (labeled_statement "code_r0x0028cd74:\n                lVar16 = (longdouble)0;" statement_identifier : (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" identifier = (cast_expression "(longdouble)0" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;)) (goto_statement "goto code_r0x0028cc3c;" goto statement_identifier ;) })) (switch_statement "switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" { (case_statement "default:\n                goto code_r0x0028cd74;" default : (goto_statement "goto code_r0x0028cd74;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;" case number_literal : (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;" case number_literal : (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (goto_statement "goto code_r0x0028cc20;" goto statement_identifier ;)) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (labeled_statement "code_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);" statement_identifier : (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" identifier = (cast_expression "(uint)ROUND(lVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;))) })) (expression_statement "lVar16 = (longdouble)(uStack_103c & 0xffff);" (assignment_expression "lVar16 = (longdouble)(uStack_103c & 0xffff)" identifier = (call_expression "(longdouble)(uStack_103c & 0xffff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uStack_103c & 0xffff)" ( (binary_expression "uStack_103c & 0xffff" identifier & number_literal) )))) ;) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (labeled_statement "code_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;" statement_identifier : (if_statement "if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;" if (parenthesized_expression "(*(int *)(iVar14 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x40) != 0" (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto code_r0x0028cba5;" goto statement_identifier ;))) (goto_statement "goto code_r0x0028cbc9;" goto statement_identifier ;) })) (switch_statement "switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;" case number_literal : (expression_statement "uStack_103e = ReadBlobByte(iVar6);" (assignment_expression "uStack_103e = ReadBlobByte(iVar6)" identifier = (call_expression "ReadBlobByte(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;" case number_literal : (expression_statement "uStack_103e = ReadBlobShort(iVar6);" (assignment_expression "uStack_103e = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;" case number_literal : (expression_statement "uStack_103e = ReadBlobLong(iVar6);" (assignment_expression "uStack_103e = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (goto_statement "goto code_r0x0028cda5;" goto statement_identifier ;)) (case_statement "default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;" default : (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" identifier = (cast_expression "(longdouble)0" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;) (goto_statement "goto code_r0x0028cdc8;" goto statement_identifier ;)) (case_statement "case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (labeled_statement "code_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);" statement_identifier : (expression_statement "uStack_103e = (ushort)ROUND(lVar16);" (assignment_expression "uStack_103e = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;))) })) (expression_statement "lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0" identifier = (binary_expression "(longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0" (call_expression "(longdouble)(uStack_103e & 0xff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uStack_103e & 0xff)" ( (binary_expression "uStack_103e & 0xff" identifier & number_literal) ))) * (cast_expression "(longdouble)DAT_002a7ff0" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (labeled_statement "code_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }" statement_identifier : (if_statement "if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }" if (parenthesized_expression "(*(int *)(iVar14 + 0x40) == 0)" ( (binary_expression "*(int *)(iVar14 + 0x40) == 0" (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }" { (labeled_statement "code_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }" statement_identifier : (switch_statement "switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;" case number_literal : (labeled_statement "code_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);" statement_identifier : (expression_statement "uVar5 = ReadBlobByte(iVar6);" (assignment_expression "uVar5 = ReadBlobByte(iVar6)" identifier = (call_expression "ReadBlobByte(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;" case number_literal : (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;" case number_literal : (expression_statement "uVar5 = ReadBlobLong(iVar6);" (assignment_expression "uVar5 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                goto code_r0x0028ca36;" default : (goto_statement "goto code_r0x0028ca36;" goto statement_identifier ;)) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;)) }))) (expression_statement "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" identifier = (binary_expression "(longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" (call_expression "(longdouble)(uVar5 & 0xff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * (cast_expression "(longdouble)DAT_002a7ff0" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (goto_statement "goto code_r0x0028c8c0;" goto statement_identifier ;) }))) (labeled_statement "code_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;" statement_identifier : (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x44) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar14 + 0x44) * 8" (pointer_expression "*(int *)(iVar14 + 0x44)" * (cast_expression "(int *)(iVar14 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x44)" ( (binary_expression "iVar14 + 0x44" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)lVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;)) (if_statement "if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (compound_statement "{\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }" { (if_statement "if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;" if (parenthesized_expression "((uVar11 & 0x20002) != 0)" ( (binary_expression "(uVar11 & 0x20002) != 0" (parenthesized_expression "(uVar11 & 0x20002)" ( (binary_expression "uVar11 & 0x20002" identifier & number_literal) )) != number_literal) )) (goto_statement "goto code_r0x0028cdd5;" goto statement_identifier ;)) (labeled_statement "code_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }" statement_identifier : (if_statement "if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }" { (switch_statement "switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }" { (case_statement "default:\n                  goto code_r0x0028ca36;" default : (goto_statement "goto code_r0x0028ca36;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                  goto code_r0x0028c995;" case number_literal : (goto_statement "goto code_r0x0028c995;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;" case number_literal : (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (goto_statement "goto code_r0x0028c9a2;" goto statement_identifier ;)) (case_statement "case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;)) })) (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" identifier = (cast_expression "(uint)ROUND(lVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;) (goto_statement "goto code_r0x0028c9a2;" goto statement_identifier ;) }))) (labeled_statement "code_r0x0028ca36:\n              lVar16 = (longdouble)0;" statement_identifier : (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" identifier = (cast_expression "(longdouble)0" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;)) }) (else_clause "else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }" else (compound_statement "{\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }" { (labeled_statement "code_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" statement_identifier : (switch_statement "switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                goto code_r0x0028c96b;" case number_literal : (goto_statement "goto code_r0x0028c96b;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;" case number_literal : (labeled_statement "code_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);" statement_identifier : (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (labeled_statement "code_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);" statement_identifier : (expression_statement "lVar16 = (longdouble)(uStack_103c & 0xffff);" (assignment_expression "lVar16 = (longdouble)(uStack_103c & 0xffff)" identifier = (call_expression "(longdouble)(uStack_103c & 0xffff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uStack_103c & 0xffff)" ( (binary_expression "uStack_103c & 0xffff" identifier & number_literal) )))) ;)) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;" case number_literal : (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" identifier = (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" ( (type_descriptor "longdouble" type_identifier) ) identifier) / (cast_expression "(longdouble)DAT_002a7fec" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;" case number_literal : (labeled_statement "code_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);" statement_identifier : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;)) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                goto code_r0x0028ca36;" default : (goto_statement "goto code_r0x0028ca36;" goto statement_identifier ;)) (case_statement "case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;" case number_literal : (labeled_statement "code_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);" statement_identifier : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;)) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;)) }))) }))) (labeled_statement "code_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);" statement_identifier : (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;)) (labeled_statement "code_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }" statement_identifier : (if_statement "if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }" if (parenthesized_expression "(*(int *)(iVar14 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x34) != 0" (pointer_expression "*(int *)(iVar14 + 0x34)" * (cast_expression "(int *)(iVar14 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x34)" ( (binary_expression "iVar14 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }" { (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x38) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar14 + 0x38) * 8" (pointer_expression "*(int *)(iVar14 + 0x38)" * (cast_expression "(int *)(iVar14 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x38)" ( (binary_expression "iVar14 + 0x38" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)lVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) }))) (labeled_statement "code_r0x0028bc60:\n            local_106c = local_106c + 1;" statement_identifier : (expression_statement "local_106c = local_106c + 1;" (assignment_expression "local_106c = local_106c + 1" identifier = (binary_expression "local_106c + 1" identifier + number_literal)) ;)) (expression_statement "iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;" (assignment_expression "iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8" identifier = (binary_expression "iVar7 + *(int *)(iVar6 + 0x298) * 8" identifier + (binary_expression "*(int *)(iVar6 + 0x298) * 8" (pointer_expression "*(int *)(iVar6 + 0x298)" * (cast_expression "(int *)(iVar6 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x298)" ( (binary_expression "iVar6 + 0x298" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(local_106c < *(int *)(iVar6 + 0x18))" ( (binary_expression "local_106c < *(int *)(iVar6 + 0x18)" identifier < (pointer_expression "*(int *)(iVar6 + 0x18)" * (cast_expression "(int *)(iVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "iVar7 = SyncAuthenticPixels(iVar6,param_2);" (assignment_expression "iVar7 = SyncAuthenticPixels(iVar6,param_2)" identifier = (call_expression "SyncAuthenticPixels(iVar6,param_2)" identifier (argument_list "(iVar6,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) goto code_r0x0028c2d0;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x0028c2d0;" goto statement_identifier ;)) (expression_statement "iStack_1058 = iStack_1058 + 1;" (assignment_expression "iStack_1058 = iStack_1058 + 1" identifier = (binary_expression "iStack_1058 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iStack_1058 < *(int *)(iVar6 + 0x1c))" ( (binary_expression "iStack_1058 < *(int *)(iVar6 + 0x1c)" identifier < (pointer_expression "*(int *)(iVar6 + 0x1c)" * (cast_expression "(int *)(iVar6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) ))))) )) ;) })) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (labeled_statement "code_r0x0028c2d7:\n    iStack_1024 = 0;" statement_identifier : (expression_statement "iStack_1024 = 0;" (assignment_expression "iStack_1024 = 0" identifier = number_literal) ;)) (while_statement "while (iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0) {\n      auStack_1020[iVar7] = 0;\n      if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }\n    }" while (parenthesized_expression "(iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0)" ( (comma_expression "iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0" (assignment_expression "iVar7 = ReadBlob(iVar6,0xfff,auStack_1020)" identifier = (call_expression "ReadBlob(iVar6,0xfff,auStack_1020)" identifier (argument_list "(iVar6,0xfff,auStack_1020)" ( identifier , number_literal , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) )) (compound_statement "{\n      auStack_1020[iVar7] = 0;\n      if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }\n    }" { (expression_statement "auStack_1020[iVar7] = 0;" (assignment_expression "auStack_1020[iVar7] = 0" (subscript_expression "auStack_1020[iVar7]" identifier [ identifier ]) = number_literal) ;) (if_statement "if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }" if (parenthesized_expression "(iStack_1024 == 0)" ( (binary_expression "iStack_1024 == 0" identifier == number_literal) )) (compound_statement "{\n        iStack_1024 = ConstantString(auStack_1020);\n      }" { (expression_statement "iStack_1024 = ConstantString(auStack_1020);" (assignment_expression "iStack_1024 = ConstantString(auStack_1020)" identifier = (call_expression "ConstantString(auStack_1020)" identifier (argument_list "(auStack_1020)" ( identifier )))) ;) }) (else_clause "else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }" else (compound_statement "{\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }" { (expression_statement "ConcatenateString(&iStack_1024,auStack_1020);" (call_expression "ConcatenateString(&iStack_1024,auStack_1020)" identifier (argument_list "(&iStack_1024,auStack_1020)" ( (pointer_expression "&iStack_1024" & identifier) , identifier ))) ;) }))) })) (if_statement "if (iStack_1024 != 0) {\n      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);\n      iStack_1024 = RelinquishMagickMemory(iStack_1024);\n    }" if (parenthesized_expression "(iStack_1024 != 0)" ( (binary_expression "iStack_1024 != 0" identifier != number_literal) )) (compound_statement "{\n      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);\n      iStack_1024 = RelinquishMagickMemory(iStack_1024);\n    }" { (expression_statement "SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);" (call_expression "SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2)" identifier (argument_list "(iVar6,"vips:metadata",iStack_1024,param_2)" ( identifier , (string_literal ""vips:metadata"" " string_content ") , identifier , identifier ))) ;) (expression_statement "iStack_1024 = RelinquishMagickMemory(iStack_1024);" (assignment_expression "iStack_1024 = RelinquishMagickMemory(iStack_1024)" identifier = (call_expression "RelinquishMagickMemory(iStack_1024)" identifier (argument_list "(iStack_1024)" ( identifier )))) ;) })) (expression_statement "CloseBlob(iVar6);" (call_expression "CloseBlob(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (if_statement "if (bVar3) goto LAB_0028b7fb;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_0028b7fb;" goto statement_identifier ;)) }) (else_clause "else {\ncode_r0x0028b983:\n    pcVar17 = "Unsupported combination of band format and colorspace";\n    uVar8 = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;\nLAB_0028b7e8:\n    CloseBlob(iVar6);\n    DestroyImageList(iVar6);\n  }" else (compound_statement "{\ncode_r0x0028b983:\n    pcVar17 = "Unsupported combination of band format and colorspace";\n    uVar8 = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;\nLAB_0028b7e8:\n    CloseBlob(iVar6);\n    DestroyImageList(iVar6);\n  }" { (labeled_statement "code_r0x0028b983:\n    pcVar17 = "Unsupported combination of band format and colorspace";" statement_identifier : (expression_statement "pcVar17 = "Unsupported combination of band format and colorspace";" (assignment_expression "pcVar17 = "Unsupported combination of band format and colorspace"" identifier = (string_literal ""Unsupported combination of band format and colorspace"" " string_content ")) ;)) (expression_statement "uVar8 = 0x1f2;" (assignment_expression "uVar8 = 0x1f2" identifier = number_literal) ;) (labeled_statement "LAB_0028b9a2:\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;" statement_identifier : (expression_statement "ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;" (call_expression "ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)" identifier (argument_list "(param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)" ( identifier , (string_literal ""coders/vips.c"" " string_content ") , (string_literal ""ReadVIPSImage"" " string_content ") , identifier , number_literal , identifier , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_1 + 0x21f0" identifier + number_literal) ))) ;)) (labeled_statement "LAB_0028b7e8:\n    CloseBlob(iVar6);" statement_identifier : (expression_statement "CloseBlob(iVar6);" (call_expression "CloseBlob(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;)) (expression_statement "DestroyImageList(iVar6);" (call_expression "DestroyImageList(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) }))) (labeled_statement "LAB_0028b7f9:\n  iVar6 = 0;" statement_identifier : (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_0028b7fb:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar6;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar6;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) }))) comment (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\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 * ReadVIPSImage(ImageInfo *image_info,ExceptionInfo *exception)\n\n{\n  int iVar1;\n  bool bVar2;\n  ushort uVar3;\n  Image *image;\n  MagickBooleanType MVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  Quantum *pQVar9;\n  ssize_t sVar10;\n  uint uVar11;\n  PixelChannelMap *pPVar12;\n  uint uVar13;\n  int in_GS_OFFSET;\n  double dVar14;\n  float fVar15;\n  float fVar16;\n  size_t line;\n  char *tag;\n  int local_106c;\n  int local_1058;\n  ushort local_103e;\n  char *metadata;\n  char buffer [4096];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");\n  }\n  if (image_info->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"coders/vips.c","ReadVIPSImage",0x18a,"%s",image_info->filename);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");\n  }\n  image = AcquireImage(image_info,exception);\n  MVar4 = OpenBlob(image_info,image,ReadBinaryBlobMode,exception);\n  if (MVar4 == MagickFalse) {\n    DestroyImageList(image);\n    image = (Image *)0x0;\n    goto LAB_0028b7fb;\n  }\n  uVar5 = ReadBlobLSBLong(image);\n  if (uVar5 != 0x8f2a6b6) {\n    if (uVar5 == 0xb6a6f208) {\n      image->endian = MSBEndian;\n      goto LAB_0028b739;\n    }\n    ThrowMagickException\n              (exception,"coders/vips.c","ReadVIPSImage",0x19c,CorruptImageError,\n               "ImproperImageHeader","`%s\'",image_info->filename);\n    if (image != (Image *)0x0) goto LAB_0028b7e8;\n    goto LAB_0028b7f9;\n  }\n  image->endian = LSBEndian;\nLAB_0028b739:\n  uVar5 = ReadBlobLong(image);\n  image->columns = uVar5;\n  uVar5 = ReadBlobLong(image);\n  image->rows = uVar5;\n  MVar4 = SetImageExtent(image,image->columns,uVar5,exception);\n  if (MVar4 == MagickFalse) {\n    image = DestroyImageList(image);\n    goto LAB_0028b7fb;\n  }\n  uVar5 = ReadBlobLong(image);\n  ReadBlobLong(image);\n  uVar6 = ReadBlobLong(image);\n  switch(uVar6) {\n  case 0:\n  case 1:\n    image->depth = 8;\n    break;\n  case 2:\n  case 3:\n    image->depth = 0x10;\n    break;\n  case 4:\n  case 5:\n  case 6:\n    image->depth = 0x20;\n    break;\n  default:\n    tag = "Unsupported band format";\n    line = 0x1bb;\n    goto LAB_0028b9a2;\n  case 8:\n    image->depth = 0x40;\n  }\n  uVar7 = ReadBlobLong(image);\n  uVar8 = ReadBlobLong(image);\n  switch(uVar8) {\n  default:\n    tag = "Unsupported colorspace";\n    line = 0x1e2;\n    goto LAB_0028b9a2;\n  case 1:\n  case 0x1a:\n    SetImageColorspace(image,GRAYColorspace,exception);\n    if (uVar5 == 2) {\nLAB_0028bb8c:\n      image->alpha_trait = BlendPixelTrait;\n    }\n    break;\n  case 0xf:\n    SetImageColorspace(image,CMYKColorspace,exception);\n    if (uVar5 == 5) {\nLAB_0028bbbc:\n      image->alpha_trait = BlendPixelTrait;\n    }\n    goto LAB_0028b9e4;\n  case 0x11:\n  case 0x19:\n    SetImageColorspace(image,RGBColorspace,exception);\n    if (uVar5 == 4) goto LAB_0028bb8c;\n    break;\n  case 0x16:\n    SetImageColorspace(image,sRGBColorspace,exception);\n    if (uVar5 == 4) goto LAB_0028bbbc;\nLAB_0028b9e4:\n    SetImageBackgroundColor(image,exception);\n    image->units = PixelsPerCentimeterResolution;\n    fVar15 = ReadBlobFloat(image);\n    fVar16 = DAT_002aa50c;\n    (image->resolution).x = (double)(fVar15 * DAT_002aa50c);\n    fVar15 = ReadBlobFloat(image);\n    (image->resolution).y = (double)(fVar16 * fVar15);\n    ReadBlobLongLong(image);\n    ReadBlobLongLong(image);\n    ReadBlobLongLong(image);\n    if (image_info->ping != MagickFalse) goto LAB_0028b7fb;\n    goto LAB_0028ba52;\n  }\n  SetImageBackgroundColor(image,exception);\n  image->units = PixelsPerCentimeterResolution;\n  fVar15 = ReadBlobFloat(image);\n  fVar16 = DAT_002aa50c;\n  (image->resolution).x = (double)(fVar15 * DAT_002aa50c);\n  fVar15 = ReadBlobFloat(image);\n  (image->resolution).y = (double)(fVar16 * fVar15);\n  ReadBlobLongLong(image);\n  ReadBlobLongLong(image);\n  ReadBlobLongLong(image);\n  if (image_info->ping != MagickFalse) goto LAB_0028b7fb;\n  if (uVar8 < 0x1b) {\nLAB_0028ba52:\n    uVar8 = 1 << ((byte)uVar8 & 0x1f);\n    if (((uVar8 & 0x428002) == 0) &&\n       ((((uVar8 & 0x6000000) == 0 || (8 < uVar6)) || ((1 << ((byte)uVar6 & 0x1f) & 0x17cU) == 0))))\n    goto LAB_0028b983;\n    if (4 < uVar5 - 1) {\n      tag = "Unsupported number of channels";\n      line = 500;\n      goto LAB_0028b9a2;\n    }\n    if (uVar7 != 0) {\n      tag = "Unsupported coding";\n      line = 0x1f8;\n      goto LAB_0028b9a2;\n    }\n    if (0 < (int)image->rows) {\n      local_1058 = 0;\n      do {\n        pQVar9 = GetAuthenticPixels(image,0,local_1058,image->columns,1,exception);\n        if (pQVar9 == (Quantum *)0x0) {\nLAB_0028c2d0:\n          bVar2 = false;\n          goto LAB_0028c2d7;\n        }\n        if (0 < (int)image->columns) {\n          uVar7 = uVar8 & 0x6000000;\n          uVar13 = uVar8 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                break;\n              default:\n                pPVar12 = image->channel_map;\n                pQVar9[pPVar12->offset] = 0.0;\n                if (2 < uVar5) goto LAB_0028bd09;\n                dVar14 = 0.0;\n                goto LAB_0028bc37;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                dVar14 = dVar14 * (double)DAT_0029f710;\n              }\n              pPVar12 = image->channel_map;\n              pQVar9[pPVar12->offset] = dVar14;\n              if (uVar5 < 3) goto LAB_0028bc37;\nLAB_0028bd09:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                fVar16 = (float)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                pQVar9[pPVar12[1].offset] = 0.0;\n                goto LAB_0028be31;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              pQVar9[image->channel_map[1].offset] = (double)fVar16;\nLAB_0028be31:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                goto _L310;\n              case 2:\n              case 3:\n                goto _L312;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                goto _L437;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              goto LAB_0028be75;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L429:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L429;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n              }\n              goto LAB_0028bc22;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c07a;\n            default:\n              goto _L429;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c07a:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\nLAB_0028bc22:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12->offset] = dVar14;\n            if (uVar5 < 3) {\nLAB_0028bc37:\n              pQVar9[pPVar12[1].offset] = dVar14;\n              pQVar9[pPVar12[2].offset] = dVar14;\n              if (uVar5 == 2) {\n                if (uVar13 != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }\n                }\n                if ((uVar8 & 0x20002) != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }\n                }\n                if (uVar7 != 0) {\n                  switch(uVar6) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }\n                }\n                goto _L443;\n              }\n              goto LAB_0028bc60;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L435:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L435;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              pQVar9[pPVar12[1].offset] = dVar14;\n              if (uVar7 == 0) goto _L437;\n              switch(uVar6) {\n              default:\n                goto _L437;\n              case 2:\n              case 3:\n_L312:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)ROUND(fVar16);\n                break;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)ROUND(dVar14);\n              }\n              fVar16 = (float)(uVar11 & 0xffff);\n              goto LAB_0028be75;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c4c8;\n            default:\n              fVar16 = 0.0;\n              goto LAB_0028c4eb;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c4c8:\n              uVar11 = (uint)local_103e;\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028c4eb:\n            pQVar9[pPVar12[1].offset] = (double)fVar16;\n            switch(uVar6) {\n            case 0:\n            case 1:\n_L310:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n              break;\n            default:\n_L437:\n              fVar16 = 0.0;\n              goto LAB_0028be75;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\nLAB_0028be75:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12[2].offset] = (double)fVar16;\n            if (uVar5 == 4) {\n              if (image->colorspace == CMYKColorspace) {\n                if (uVar13 == 0) {\n                  if ((uVar8 & 0x20002) == 0) {\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }\n                  else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }\n                }\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  pQVar9[pPVar12[5].offset] = (double)fVar16;\n                }\n                goto LAB_0028bc60;\n              }\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) == 0) {\n                  if (uVar7 == 0) {\n_L443:\n                    dVar14 = 0.0;\n                  }\n                  else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }\nLAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                  pPVar12 = image->channel_map;\n                }\n              }\n              else {\n                switch(uVar6) {\n                case 0:\n                case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;\n                case 2:\n                case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;\n                case 4:\n                case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;\n                case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L443;\n                case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n              goto LAB_0028c1d8;\n            }\n            if (uVar5 != 5) goto LAB_0028bc60;\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                pPVar12 = image->channel_map;\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L391;\n              default:\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  dVar14 = 0.0;\n                  goto LAB_0028cba5;\n                }\n                goto LAB_0028c951;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                pPVar12 = image->channel_map;\n                dVar14 = dVar14 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L392;\n              }\n              pPVar12 = image->channel_map;\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028c951;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L445:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L445;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028cbc9;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028cda5;\n            default:\n              dVar14 = 0.0;\n              goto LAB_0028cdc8;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028cda5:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028cdc8:\n            if (pPVar12[5].traits == UndefinedPixelTrait) {\nLAB_0028cdd5:\n              switch(uVar6) {\n              case 0:\n              case 1:\n_L409:\n                uVar11 = ReadBlobByte(image);\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                break;\n              default:\n                goto _L448;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n              }\n              dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            }\n            else {\nLAB_0028cba5:\n              pQVar9[pPVar12[5].offset] = dVar14;\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;\nLAB_0028cbc9:\n                if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }\n              }\n              else {\nLAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n            }\n            pPVar12 = image->channel_map;\nLAB_0028c1d8:\n            if (pPVar12[4].traits != UndefinedPixelTrait) {\n              pQVar9[pPVar12[4].offset] = dVar14;\n            }\nLAB_0028bc60:\n            local_106c = local_106c + 1;\n            pQVar9 = pQVar9 + image->number_channels;\n          } while (local_106c < (int)image->columns);\n        }\n        MVar4 = SyncAuthenticPixels(image,exception);\n        if (MVar4 == MagickFalse) goto LAB_0028c2d0;\n        local_1058 = local_1058 + 1;\n      } while (local_1058 < (int)image->rows);\n    }\n    bVar2 = true;\nLAB_0028c2d7:\n    metadata = (char *)0x0;\n    while (sVar10 = ReadBlob(image,0xfff,buffer), sVar10 != 0) {\n      buffer[sVar10] = '\0';\n      if (metadata == (char *)0x0) {\n        metadata = ConstantString(buffer);\n      }\n      else {\n        ConcatenateString(&metadata,buffer);\n      }\n    }\n    if (metadata != (char *)0x0) {\n      SetImageProperty(image,"vips:metadata",metadata,exception);\n      metadata = (char *)RelinquishMagickMemory(metadata);\n    }\n    CloseBlob(image);\n    if (bVar2) goto LAB_0028b7fb;\n  }\n  else {\nLAB_0028b983:\n    tag = "Unsupported combination of band format and colorspace";\n    line = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (exception,"coders/vips.c","ReadVIPSImage",line,CoderError,tag,"`%s\'",\n               image_info->filename);\nLAB_0028b7e8:\n    CloseBlob(image);\n    DestroyImageList(image);\n  }\nLAB_0028b7f9:\n  image = (Image *)0x0;\nLAB_0028b7fb:\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return image;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment comment comment comment comment comment comment comment (function_definition "Image * ReadVIPSImage(ImageInfo *image_info,ExceptionInfo *exception)\n\n{\n  int iVar1;\n  bool bVar2;\n  ushort uVar3;\n  Image *image;\n  MagickBooleanType MVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  Quantum *pQVar9;\n  ssize_t sVar10;\n  uint uVar11;\n  PixelChannelMap *pPVar12;\n  uint uVar13;\n  int in_GS_OFFSET;\n  double dVar14;\n  float fVar15;\n  float fVar16;\n  size_t line;\n  char *tag;\n  int local_106c;\n  int local_1058;\n  ushort local_103e;\n  char *metadata;\n  char buffer [4096];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");\n  }\n  if (image_info->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"coders/vips.c","ReadVIPSImage",0x18a,"%s",image_info->filename);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");\n  }\n  image = AcquireImage(image_info,exception);\n  MVar4 = OpenBlob(image_info,image,ReadBinaryBlobMode,exception);\n  if (MVar4 == MagickFalse) {\n    DestroyImageList(image);\n    image = (Image *)0x0;\n    goto LAB_0028b7fb;\n  }\n  uVar5 = ReadBlobLSBLong(image);\n  if (uVar5 != 0x8f2a6b6) {\n    if (uVar5 == 0xb6a6f208) {\n      image->endian = MSBEndian;\n      goto LAB_0028b739;\n    }\n    ThrowMagickException\n              (exception,"coders/vips.c","ReadVIPSImage",0x19c,CorruptImageError,\n               "ImproperImageHeader","`%s\'",image_info->filename);\n    if (image != (Image *)0x0) goto LAB_0028b7e8;\n    goto LAB_0028b7f9;\n  }\n  image->endian = LSBEndian;\nLAB_0028b739:\n  uVar5 = ReadBlobLong(image);\n  image->columns = uVar5;\n  uVar5 = ReadBlobLong(image);\n  image->rows = uVar5;\n  MVar4 = SetImageExtent(image,image->columns,uVar5,exception);\n  if (MVar4 == MagickFalse) {\n    image = DestroyImageList(image);\n    goto LAB_0028b7fb;\n  }\n  uVar5 = ReadBlobLong(image);\n  ReadBlobLong(image);\n  uVar6 = ReadBlobLong(image);\n  switch(uVar6) {\n  case 0:\n  case 1:\n    image->depth = 8;\n    break;\n  case 2:\n  case 3:\n    image->depth = 0x10;\n    break;\n  case 4:\n  case 5:\n  case 6:\n    image->depth = 0x20;\n    break;\n  default:\n    tag = "Unsupported band format";\n    line = 0x1bb;\n    goto LAB_0028b9a2;\n  case 8:\n    image->depth = 0x40;\n  }\n  uVar7 = ReadBlobLong(image);\n  uVar8 = ReadBlobLong(image);\n  switch(uVar8) {\n  default:\n    tag = "Unsupported colorspace";\n    line = 0x1e2;\n    goto LAB_0028b9a2;\n  case 1:\n  case 0x1a:\n    SetImageColorspace(image,GRAYColorspace,exception);\n    if (uVar5 == 2) {\nLAB_0028bb8c:\n      image->alpha_trait = BlendPixelTrait;\n    }\n    break;\n  case 0xf:\n    SetImageColorspace(image,CMYKColorspace,exception);\n    if (uVar5 == 5) {\nLAB_0028bbbc:\n      image->alpha_trait = BlendPixelTrait;\n    }\n    goto LAB_0028b9e4;\n  case 0x11:\n  case 0x19:\n    SetImageColorspace(image,RGBColorspace,exception);\n    if (uVar5 == 4) goto LAB_0028bb8c;\n    break;\n  case 0x16:\n    SetImageColorspace(image,sRGBColorspace,exception);\n    if (uVar5 == 4) goto LAB_0028bbbc;\nLAB_0028b9e4:\n    SetImageBackgroundColor(image,exception);\n    image->units = PixelsPerCentimeterResolution;\n    fVar15 = ReadBlobFloat(image);\n    fVar16 = DAT_002aa50c;\n    (image->resolution).x = (double)(fVar15 * DAT_002aa50c);\n    fVar15 = ReadBlobFloat(image);\n    (image->resolution).y = (double)(fVar16 * fVar15);\n    ReadBlobLongLong(image);\n    ReadBlobLongLong(image);\n    ReadBlobLongLong(image);\n    if (image_info->ping != MagickFalse) goto LAB_0028b7fb;\n    goto LAB_0028ba52;\n  }\n  SetImageBackgroundColor(image,exception);\n  image->units = PixelsPerCentimeterResolution;\n  fVar15 = ReadBlobFloat(image);\n  fVar16 = DAT_002aa50c;\n  (image->resolution).x = (double)(fVar15 * DAT_002aa50c);\n  fVar15 = ReadBlobFloat(image);\n  (image->resolution).y = (double)(fVar16 * fVar15);\n  ReadBlobLongLong(image);\n  ReadBlobLongLong(image);\n  ReadBlobLongLong(image);\n  if (image_info->ping != MagickFalse) goto LAB_0028b7fb;\n  if (uVar8 < 0x1b) {\nLAB_0028ba52:\n    uVar8 = 1 << ((byte)uVar8 & 0x1f);\n    if (((uVar8 & 0x428002) == 0) &&\n       ((((uVar8 & 0x6000000) == 0 || (8 < uVar6)) || ((1 << ((byte)uVar6 & 0x1f) & 0x17cU) == 0))))\n    goto LAB_0028b983;\n    if (4 < uVar5 - 1) {\n      tag = "Unsupported number of channels";\n      line = 500;\n      goto LAB_0028b9a2;\n    }\n    if (uVar7 != 0) {\n      tag = "Unsupported coding";\n      line = 0x1f8;\n      goto LAB_0028b9a2;\n    }\n    if (0 < (int)image->rows) {\n      local_1058 = 0;\n      do {\n        pQVar9 = GetAuthenticPixels(image,0,local_1058,image->columns,1,exception);\n        if (pQVar9 == (Quantum *)0x0) {\nLAB_0028c2d0:\n          bVar2 = false;\n          goto LAB_0028c2d7;\n        }\n        if (0 < (int)image->columns) {\n          uVar7 = uVar8 & 0x6000000;\n          uVar13 = uVar8 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                break;\n              default:\n                pPVar12 = image->channel_map;\n                pQVar9[pPVar12->offset] = 0.0;\n                if (2 < uVar5) goto LAB_0028bd09;\n                dVar14 = 0.0;\n                goto LAB_0028bc37;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                dVar14 = dVar14 * (double)DAT_0029f710;\n              }\n              pPVar12 = image->channel_map;\n              pQVar9[pPVar12->offset] = dVar14;\n              if (uVar5 < 3) goto LAB_0028bc37;\nLAB_0028bd09:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                fVar16 = (float)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                pQVar9[pPVar12[1].offset] = 0.0;\n                goto LAB_0028be31;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              pQVar9[image->channel_map[1].offset] = (double)fVar16;\nLAB_0028be31:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                goto _L310;\n              case 2:\n              case 3:\n                goto _L312;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                goto _L437;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              goto LAB_0028be75;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L429:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L429;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n              }\n              goto LAB_0028bc22;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c07a;\n            default:\n              goto _L429;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c07a:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\nLAB_0028bc22:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12->offset] = dVar14;\n            if (uVar5 < 3) {\nLAB_0028bc37:\n              pQVar9[pPVar12[1].offset] = dVar14;\n              pQVar9[pPVar12[2].offset] = dVar14;\n              if (uVar5 == 2) {\n                if (uVar13 != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }\n                }\n                if ((uVar8 & 0x20002) != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }\n                }\n                if (uVar7 != 0) {\n                  switch(uVar6) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }\n                }\n                goto _L443;\n              }\n              goto LAB_0028bc60;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L435:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L435;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              pQVar9[pPVar12[1].offset] = dVar14;\n              if (uVar7 == 0) goto _L437;\n              switch(uVar6) {\n              default:\n                goto _L437;\n              case 2:\n              case 3:\n_L312:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)ROUND(fVar16);\n                break;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)ROUND(dVar14);\n              }\n              fVar16 = (float)(uVar11 & 0xffff);\n              goto LAB_0028be75;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c4c8;\n            default:\n              fVar16 = 0.0;\n              goto LAB_0028c4eb;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c4c8:\n              uVar11 = (uint)local_103e;\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028c4eb:\n            pQVar9[pPVar12[1].offset] = (double)fVar16;\n            switch(uVar6) {\n            case 0:\n            case 1:\n_L310:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n              break;\n            default:\n_L437:\n              fVar16 = 0.0;\n              goto LAB_0028be75;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\nLAB_0028be75:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12[2].offset] = (double)fVar16;\n            if (uVar5 == 4) {\n              if (image->colorspace == CMYKColorspace) {\n                if (uVar13 == 0) {\n                  if ((uVar8 & 0x20002) == 0) {\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }\n                  else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }\n                }\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  pQVar9[pPVar12[5].offset] = (double)fVar16;\n                }\n                goto LAB_0028bc60;\n              }\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) == 0) {\n                  if (uVar7 == 0) {\n_L443:\n                    dVar14 = 0.0;\n                  }\n                  else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }\nLAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                  pPVar12 = image->channel_map;\n                }\n              }\n              else {\n                switch(uVar6) {\n                case 0:\n                case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;\n                case 2:\n                case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;\n                case 4:\n                case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;\n                case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L443;\n                case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n              goto LAB_0028c1d8;\n            }\n            if (uVar5 != 5) goto LAB_0028bc60;\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                pPVar12 = image->channel_map;\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L391;\n              default:\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  dVar14 = 0.0;\n                  goto LAB_0028cba5;\n                }\n                goto LAB_0028c951;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                pPVar12 = image->channel_map;\n                dVar14 = dVar14 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L392;\n              }\n              pPVar12 = image->channel_map;\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028c951;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L445:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L445;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028cbc9;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028cda5;\n            default:\n              dVar14 = 0.0;\n              goto LAB_0028cdc8;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028cda5:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028cdc8:\n            if (pPVar12[5].traits == UndefinedPixelTrait) {\nLAB_0028cdd5:\n              switch(uVar6) {\n              case 0:\n              case 1:\n_L409:\n                uVar11 = ReadBlobByte(image);\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                break;\n              default:\n                goto _L448;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n              }\n              dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            }\n            else {\nLAB_0028cba5:\n              pQVar9[pPVar12[5].offset] = dVar14;\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;\nLAB_0028cbc9:\n                if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }\n              }\n              else {\nLAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n            }\n            pPVar12 = image->channel_map;\nLAB_0028c1d8:\n            if (pPVar12[4].traits != UndefinedPixelTrait) {\n              pQVar9[pPVar12[4].offset] = dVar14;\n            }\nLAB_0028bc60:\n            local_106c = local_106c + 1;\n            pQVar9 = pQVar9 + image->number_channels;\n          } while (local_106c < (int)image->columns);\n        }\n        MVar4 = SyncAuthenticPixels(image,exception);\n        if (MVar4 == MagickFalse) goto LAB_0028c2d0;\n        local_1058 = local_1058 + 1;\n      } while (local_1058 < (int)image->rows);\n    }\n    bVar2 = true;\nLAB_0028c2d7:\n    metadata = (char *)0x0;\n    while (sVar10 = ReadBlob(image,0xfff,buffer), sVar10 != 0) {\n      buffer[sVar10] = '\0';\n      if (metadata == (char *)0x0) {\n        metadata = ConstantString(buffer);\n      }\n      else {\n        ConcatenateString(&metadata,buffer);\n      }\n    }\n    if (metadata != (char *)0x0) {\n      SetImageProperty(image,"vips:metadata",metadata,exception);\n      metadata = (char *)RelinquishMagickMemory(metadata);\n    }\n    CloseBlob(image);\n    if (bVar2) goto LAB_0028b7fb;\n  }\n  else {\nLAB_0028b983:\n    tag = "Unsupported combination of band format and colorspace";\n    line = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (exception,"coders/vips.c","ReadVIPSImage",line,CoderError,tag,"`%s\'",\n               image_info->filename);\nLAB_0028b7e8:\n    CloseBlob(image);\n    DestroyImageList(image);\n  }\nLAB_0028b7f9:\n  image = (Image *)0x0;\nLAB_0028b7fb:\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return image;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" type_identifier (pointer_declarator "* ReadVIPSImage(ImageInfo *image_info,ExceptionInfo *exception)" * (function_declarator "ReadVIPSImage(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  int iVar1;\n  bool bVar2;\n  ushort uVar3;\n  Image *image;\n  MagickBooleanType MVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  Quantum *pQVar9;\n  ssize_t sVar10;\n  uint uVar11;\n  PixelChannelMap *pPVar12;\n  uint uVar13;\n  int in_GS_OFFSET;\n  double dVar14;\n  float fVar15;\n  float fVar16;\n  size_t line;\n  char *tag;\n  int local_106c;\n  int local_1058;\n  ushort local_103e;\n  char *metadata;\n  char buffer [4096];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");\n  }\n  if (image_info->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"coders/vips.c","ReadVIPSImage",0x18a,"%s",image_info->filename);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");\n  }\n  image = AcquireImage(image_info,exception);\n  MVar4 = OpenBlob(image_info,image,ReadBinaryBlobMode,exception);\n  if (MVar4 == MagickFalse) {\n    DestroyImageList(image);\n    image = (Image *)0x0;\n    goto LAB_0028b7fb;\n  }\n  uVar5 = ReadBlobLSBLong(image);\n  if (uVar5 != 0x8f2a6b6) {\n    if (uVar5 == 0xb6a6f208) {\n      image->endian = MSBEndian;\n      goto LAB_0028b739;\n    }\n    ThrowMagickException\n              (exception,"coders/vips.c","ReadVIPSImage",0x19c,CorruptImageError,\n               "ImproperImageHeader","`%s\'",image_info->filename);\n    if (image != (Image *)0x0) goto LAB_0028b7e8;\n    goto LAB_0028b7f9;\n  }\n  image->endian = LSBEndian;\nLAB_0028b739:\n  uVar5 = ReadBlobLong(image);\n  image->columns = uVar5;\n  uVar5 = ReadBlobLong(image);\n  image->rows = uVar5;\n  MVar4 = SetImageExtent(image,image->columns,uVar5,exception);\n  if (MVar4 == MagickFalse) {\n    image = DestroyImageList(image);\n    goto LAB_0028b7fb;\n  }\n  uVar5 = ReadBlobLong(image);\n  ReadBlobLong(image);\n  uVar6 = ReadBlobLong(image);\n  switch(uVar6) {\n  case 0:\n  case 1:\n    image->depth = 8;\n    break;\n  case 2:\n  case 3:\n    image->depth = 0x10;\n    break;\n  case 4:\n  case 5:\n  case 6:\n    image->depth = 0x20;\n    break;\n  default:\n    tag = "Unsupported band format";\n    line = 0x1bb;\n    goto LAB_0028b9a2;\n  case 8:\n    image->depth = 0x40;\n  }\n  uVar7 = ReadBlobLong(image);\n  uVar8 = ReadBlobLong(image);\n  switch(uVar8) {\n  default:\n    tag = "Unsupported colorspace";\n    line = 0x1e2;\n    goto LAB_0028b9a2;\n  case 1:\n  case 0x1a:\n    SetImageColorspace(image,GRAYColorspace,exception);\n    if (uVar5 == 2) {\nLAB_0028bb8c:\n      image->alpha_trait = BlendPixelTrait;\n    }\n    break;\n  case 0xf:\n    SetImageColorspace(image,CMYKColorspace,exception);\n    if (uVar5 == 5) {\nLAB_0028bbbc:\n      image->alpha_trait = BlendPixelTrait;\n    }\n    goto LAB_0028b9e4;\n  case 0x11:\n  case 0x19:\n    SetImageColorspace(image,RGBColorspace,exception);\n    if (uVar5 == 4) goto LAB_0028bb8c;\n    break;\n  case 0x16:\n    SetImageColorspace(image,sRGBColorspace,exception);\n    if (uVar5 == 4) goto LAB_0028bbbc;\nLAB_0028b9e4:\n    SetImageBackgroundColor(image,exception);\n    image->units = PixelsPerCentimeterResolution;\n    fVar15 = ReadBlobFloat(image);\n    fVar16 = DAT_002aa50c;\n    (image->resolution).x = (double)(fVar15 * DAT_002aa50c);\n    fVar15 = ReadBlobFloat(image);\n    (image->resolution).y = (double)(fVar16 * fVar15);\n    ReadBlobLongLong(image);\n    ReadBlobLongLong(image);\n    ReadBlobLongLong(image);\n    if (image_info->ping != MagickFalse) goto LAB_0028b7fb;\n    goto LAB_0028ba52;\n  }\n  SetImageBackgroundColor(image,exception);\n  image->units = PixelsPerCentimeterResolution;\n  fVar15 = ReadBlobFloat(image);\n  fVar16 = DAT_002aa50c;\n  (image->resolution).x = (double)(fVar15 * DAT_002aa50c);\n  fVar15 = ReadBlobFloat(image);\n  (image->resolution).y = (double)(fVar16 * fVar15);\n  ReadBlobLongLong(image);\n  ReadBlobLongLong(image);\n  ReadBlobLongLong(image);\n  if (image_info->ping != MagickFalse) goto LAB_0028b7fb;\n  if (uVar8 < 0x1b) {\nLAB_0028ba52:\n    uVar8 = 1 << ((byte)uVar8 & 0x1f);\n    if (((uVar8 & 0x428002) == 0) &&\n       ((((uVar8 & 0x6000000) == 0 || (8 < uVar6)) || ((1 << ((byte)uVar6 & 0x1f) & 0x17cU) == 0))))\n    goto LAB_0028b983;\n    if (4 < uVar5 - 1) {\n      tag = "Unsupported number of channels";\n      line = 500;\n      goto LAB_0028b9a2;\n    }\n    if (uVar7 != 0) {\n      tag = "Unsupported coding";\n      line = 0x1f8;\n      goto LAB_0028b9a2;\n    }\n    if (0 < (int)image->rows) {\n      local_1058 = 0;\n      do {\n        pQVar9 = GetAuthenticPixels(image,0,local_1058,image->columns,1,exception);\n        if (pQVar9 == (Quantum *)0x0) {\nLAB_0028c2d0:\n          bVar2 = false;\n          goto LAB_0028c2d7;\n        }\n        if (0 < (int)image->columns) {\n          uVar7 = uVar8 & 0x6000000;\n          uVar13 = uVar8 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                break;\n              default:\n                pPVar12 = image->channel_map;\n                pQVar9[pPVar12->offset] = 0.0;\n                if (2 < uVar5) goto LAB_0028bd09;\n                dVar14 = 0.0;\n                goto LAB_0028bc37;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                dVar14 = dVar14 * (double)DAT_0029f710;\n              }\n              pPVar12 = image->channel_map;\n              pQVar9[pPVar12->offset] = dVar14;\n              if (uVar5 < 3) goto LAB_0028bc37;\nLAB_0028bd09:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                fVar16 = (float)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                pQVar9[pPVar12[1].offset] = 0.0;\n                goto LAB_0028be31;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              pQVar9[image->channel_map[1].offset] = (double)fVar16;\nLAB_0028be31:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                goto _L310;\n              case 2:\n              case 3:\n                goto _L312;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                goto _L437;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              goto LAB_0028be75;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L429:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L429;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n              }\n              goto LAB_0028bc22;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c07a;\n            default:\n              goto _L429;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c07a:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\nLAB_0028bc22:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12->offset] = dVar14;\n            if (uVar5 < 3) {\nLAB_0028bc37:\n              pQVar9[pPVar12[1].offset] = dVar14;\n              pQVar9[pPVar12[2].offset] = dVar14;\n              if (uVar5 == 2) {\n                if (uVar13 != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }\n                }\n                if ((uVar8 & 0x20002) != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }\n                }\n                if (uVar7 != 0) {\n                  switch(uVar6) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }\n                }\n                goto _L443;\n              }\n              goto LAB_0028bc60;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L435:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L435;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              pQVar9[pPVar12[1].offset] = dVar14;\n              if (uVar7 == 0) goto _L437;\n              switch(uVar6) {\n              default:\n                goto _L437;\n              case 2:\n              case 3:\n_L312:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)ROUND(fVar16);\n                break;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)ROUND(dVar14);\n              }\n              fVar16 = (float)(uVar11 & 0xffff);\n              goto LAB_0028be75;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c4c8;\n            default:\n              fVar16 = 0.0;\n              goto LAB_0028c4eb;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c4c8:\n              uVar11 = (uint)local_103e;\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028c4eb:\n            pQVar9[pPVar12[1].offset] = (double)fVar16;\n            switch(uVar6) {\n            case 0:\n            case 1:\n_L310:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n              break;\n            default:\n_L437:\n              fVar16 = 0.0;\n              goto LAB_0028be75;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\nLAB_0028be75:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12[2].offset] = (double)fVar16;\n            if (uVar5 == 4) {\n              if (image->colorspace == CMYKColorspace) {\n                if (uVar13 == 0) {\n                  if ((uVar8 & 0x20002) == 0) {\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }\n                  else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }\n                }\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  pQVar9[pPVar12[5].offset] = (double)fVar16;\n                }\n                goto LAB_0028bc60;\n              }\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) == 0) {\n                  if (uVar7 == 0) {\n_L443:\n                    dVar14 = 0.0;\n                  }\n                  else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }\nLAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                  pPVar12 = image->channel_map;\n                }\n              }\n              else {\n                switch(uVar6) {\n                case 0:\n                case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;\n                case 2:\n                case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;\n                case 4:\n                case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;\n                case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L443;\n                case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n              goto LAB_0028c1d8;\n            }\n            if (uVar5 != 5) goto LAB_0028bc60;\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                pPVar12 = image->channel_map;\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L391;\n              default:\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  dVar14 = 0.0;\n                  goto LAB_0028cba5;\n                }\n                goto LAB_0028c951;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                pPVar12 = image->channel_map;\n                dVar14 = dVar14 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L392;\n              }\n              pPVar12 = image->channel_map;\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028c951;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L445:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L445;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028cbc9;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028cda5;\n            default:\n              dVar14 = 0.0;\n              goto LAB_0028cdc8;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028cda5:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028cdc8:\n            if (pPVar12[5].traits == UndefinedPixelTrait) {\nLAB_0028cdd5:\n              switch(uVar6) {\n              case 0:\n              case 1:\n_L409:\n                uVar11 = ReadBlobByte(image);\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                break;\n              default:\n                goto _L448;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n              }\n              dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            }\n            else {\nLAB_0028cba5:\n              pQVar9[pPVar12[5].offset] = dVar14;\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;\nLAB_0028cbc9:\n                if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }\n              }\n              else {\nLAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n            }\n            pPVar12 = image->channel_map;\nLAB_0028c1d8:\n            if (pPVar12[4].traits != UndefinedPixelTrait) {\n              pQVar9[pPVar12[4].offset] = dVar14;\n            }\nLAB_0028bc60:\n            local_106c = local_106c + 1;\n            pQVar9 = pQVar9 + image->number_channels;\n          } while (local_106c < (int)image->columns);\n        }\n        MVar4 = SyncAuthenticPixels(image,exception);\n        if (MVar4 == MagickFalse) goto LAB_0028c2d0;\n        local_1058 = local_1058 + 1;\n      } while (local_1058 < (int)image->rows);\n    }\n    bVar2 = true;\nLAB_0028c2d7:\n    metadata = (char *)0x0;\n    while (sVar10 = ReadBlob(image,0xfff,buffer), sVar10 != 0) {\n      buffer[sVar10] = '\0';\n      if (metadata == (char *)0x0) {\n        metadata = ConstantString(buffer);\n      }\n      else {\n        ConcatenateString(&metadata,buffer);\n      }\n    }\n    if (metadata != (char *)0x0) {\n      SetImageProperty(image,"vips:metadata",metadata,exception);\n      metadata = (char *)RelinquishMagickMemory(metadata);\n    }\n    CloseBlob(image);\n    if (bVar2) goto LAB_0028b7fb;\n  }\n  else {\nLAB_0028b983:\n    tag = "Unsupported combination of band format and colorspace";\n    line = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (exception,"coders/vips.c","ReadVIPSImage",line,CoderError,tag,"`%s\'",\n               image_info->filename);\nLAB_0028b7e8:\n    CloseBlob(image);\n    DestroyImageList(image);\n  }\nLAB_0028b7f9:\n  image = (Image *)0x0;\nLAB_0028b7fb:\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return image;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "Image *image;" type_identifier (pointer_declarator "*image" * identifier) ;) (declaration "MagickBooleanType MVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "Quantum *pQVar9;" type_identifier (pointer_declarator "*pQVar9" * identifier) ;) (declaration "ssize_t sVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "PixelChannelMap *pPVar12;" type_identifier (pointer_declarator "*pPVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "double dVar14;" primitive_type identifier ;) (declaration "float fVar15;" primitive_type identifier ;) (declaration "float fVar16;" primitive_type identifier ;) (declaration "size_t line;" primitive_type identifier ;) (declaration "char *tag;" primitive_type (pointer_declarator "*tag" * identifier) ;) (declaration "int local_106c;" primitive_type identifier ;) (declaration "int local_1058;" primitive_type identifier ;) (declaration "ushort local_103e;" type_identifier identifier ;) (declaration "char *metadata;" primitive_type (pointer_declarator "*metadata" * identifier) ;) (declaration "char buffer [4096];" primitive_type (array_declarator "buffer [4096]" identifier [ number_literal ]) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" 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/vips.c",0x187,"ReadVIPSImage");\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/vips.c",0x187,"ReadVIPSImage");\n  }" { comment (expression_statement "__assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");" (call_expression "__assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage")" identifier (argument_list "("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage")" ( (string_literal ""image_info != (const ImageInfo *) NULL"" " string_content ") , (string_literal ""coders/vips.c"" " string_content ") , number_literal , (string_literal ""ReadVIPSImage"" " string_content ") ))) ;) })) (if_statement "if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");\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/vips.c",0x188,\n                  "ReadVIPSImage");\n  }" { comment (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage")" identifier (argument_list "("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage")" ( (string_literal ""image_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/vips.c"" " string_content ") , number_literal , (string_literal ""ReadVIPSImage"" " string_content ") ))) ;) })) (if_statement "if (image_info->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"coders/vips.c","ReadVIPSImage",0x18a,"%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/vips.c","ReadVIPSImage",0x18a,"%s",image_info->filename);\n  }" { (expression_statement "LogMagickEvent(TraceEvent,"coders/vips.c","ReadVIPSImage",0x18a,"%s",image_info->filename);" (call_expression "LogMagickEvent(TraceEvent,"coders/vips.c","ReadVIPSImage",0x18a,"%s",image_info->filename)" identifier (argument_list "(TraceEvent,"coders/vips.c","ReadVIPSImage",0x18a,"%s",image_info->filename)" ( identifier , (string_literal ""coders/vips.c"" " string_content ") , (string_literal ""ReadVIPSImage"" " 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/vips.c",0x18c,"ReadVIPSImage");\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/vips.c",0x18c,"ReadVIPSImage");\n  }" { comment (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage")" identifier (argument_list "("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage")" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""coders/vips.c"" " string_content ") , number_literal , (string_literal ""ReadVIPSImage"" " string_content ") ))) ;) })) (if_statement "if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");\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/vips.c",0x18d,\n                  "ReadVIPSImage");\n  }" { comment (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage")" identifier (argument_list "("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage")" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/vips.c"" " string_content ") , number_literal , (string_literal ""ReadVIPSImage"" " 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 "MVar4 = OpenBlob(image_info,image,ReadBinaryBlobMode,exception);" (assignment_expression "MVar4 = 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 (MVar4 == MagickFalse) {\n    DestroyImageList(image);\n    image = (Image *)0x0;\n    goto LAB_0028b7fb;\n  }" if (parenthesized_expression "(MVar4 == MagickFalse)" ( (binary_expression "MVar4 == MagickFalse" identifier == identifier) )) (compound_statement "{\n    DestroyImageList(image);\n    image = (Image *)0x0;\n    goto LAB_0028b7fb;\n  }" { (expression_statement "DestroyImageList(image);" (call_expression "DestroyImageList(image)" identifier (argument_list "(image)" ( identifier ))) ;) (expression_statement "image = (Image *)0x0;" (assignment_expression "image = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0028b7fb;" goto statement_identifier ;) })) (expression_statement "uVar5 = ReadBlobLSBLong(image);" (assignment_expression "uVar5 = ReadBlobLSBLong(image)" identifier = (call_expression "ReadBlobLSBLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (if_statement "if (uVar5 != 0x8f2a6b6) {\n    if (uVar5 == 0xb6a6f208) {\n      image->endian = MSBEndian;\n      goto LAB_0028b739;\n    }\n    ThrowMagickException\n              (exception,"coders/vips.c","ReadVIPSImage",0x19c,CorruptImageError,\n               "ImproperImageHeader","`%s\'",image_info->filename);\n    if (image != (Image *)0x0) goto LAB_0028b7e8;\n    goto LAB_0028b7f9;\n  }" if (parenthesized_expression "(uVar5 != 0x8f2a6b6)" ( (binary_expression "uVar5 != 0x8f2a6b6" identifier != number_literal) )) (compound_statement "{\n    if (uVar5 == 0xb6a6f208) {\n      image->endian = MSBEndian;\n      goto LAB_0028b739;\n    }\n    ThrowMagickException\n              (exception,"coders/vips.c","ReadVIPSImage",0x19c,CorruptImageError,\n               "ImproperImageHeader","`%s\'",image_info->filename);\n    if (image != (Image *)0x0) goto LAB_0028b7e8;\n    goto LAB_0028b7f9;\n  }" { (if_statement "if (uVar5 == 0xb6a6f208) {\n      image->endian = MSBEndian;\n      goto LAB_0028b739;\n    }" if (parenthesized_expression "(uVar5 == 0xb6a6f208)" ( (binary_expression "uVar5 == 0xb6a6f208" identifier == number_literal) )) (compound_statement "{\n      image->endian = MSBEndian;\n      goto LAB_0028b739;\n    }" { (expression_statement "image->endian = MSBEndian;" (assignment_expression "image->endian = MSBEndian" (field_expression "image->endian" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_0028b739;" goto statement_identifier ;) })) (expression_statement "ThrowMagickException\n              (exception,"coders/vips.c","ReadVIPSImage",0x19c,CorruptImageError,\n               "ImproperImageHeader","`%s\'",image_info->filename);" (call_expression "ThrowMagickException\n              (exception,"coders/vips.c","ReadVIPSImage",0x19c,CorruptImageError,\n               "ImproperImageHeader","`%s\'",image_info->filename)" identifier (argument_list "(exception,"coders/vips.c","ReadVIPSImage",0x19c,CorruptImageError,\n               "ImproperImageHeader","`%s\'",image_info->filename)" ( identifier , (string_literal ""coders/vips.c"" " string_content ") , (string_literal ""ReadVIPSImage"" " 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) goto LAB_0028b7e8;" 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)) )) (goto_statement "goto LAB_0028b7e8;" goto statement_identifier ;)) (goto_statement "goto LAB_0028b7f9;" goto statement_identifier ;) })) (expression_statement "image->endian = LSBEndian;" (assignment_expression "image->endian = LSBEndian" (field_expression "image->endian" identifier -> field_identifier) = identifier) ;) (labeled_statement "LAB_0028b739:\n  uVar5 = ReadBlobLong(image);" statement_identifier : (expression_statement "uVar5 = ReadBlobLong(image);" (assignment_expression "uVar5 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (expression_statement "image->columns = uVar5;" (assignment_expression "image->columns = uVar5" (field_expression "image->columns" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar5 = ReadBlobLong(image);" (assignment_expression "uVar5 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "image->rows = uVar5;" (assignment_expression "image->rows = uVar5" (field_expression "image->rows" identifier -> field_identifier) = identifier) ;) (expression_statement "MVar4 = SetImageExtent(image,image->columns,uVar5,exception);" (assignment_expression "MVar4 = SetImageExtent(image,image->columns,uVar5,exception)" identifier = (call_expression "SetImageExtent(image,image->columns,uVar5,exception)" identifier (argument_list "(image,image->columns,uVar5,exception)" ( identifier , (field_expression "image->columns" identifier -> field_identifier) , identifier , identifier )))) ;) (if_statement "if (MVar4 == MagickFalse) {\n    image = DestroyImageList(image);\n    goto LAB_0028b7fb;\n  }" if (parenthesized_expression "(MVar4 == MagickFalse)" ( (binary_expression "MVar4 == MagickFalse" identifier == identifier) )) (compound_statement "{\n    image = DestroyImageList(image);\n    goto LAB_0028b7fb;\n  }" { (expression_statement "image = DestroyImageList(image);" (assignment_expression "image = DestroyImageList(image)" identifier = (call_expression "DestroyImageList(image)" identifier (argument_list "(image)" ( identifier )))) ;) (goto_statement "goto LAB_0028b7fb;" goto statement_identifier ;) })) (expression_statement "uVar5 = ReadBlobLong(image);" (assignment_expression "uVar5 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "ReadBlobLong(image);" (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier ))) ;) (expression_statement "uVar6 = ReadBlobLong(image);" (assignment_expression "uVar6 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (switch_statement "switch(uVar6) {\n  case 0:\n  case 1:\n    image->depth = 8;\n    break;\n  case 2:\n  case 3:\n    image->depth = 0x10;\n    break;\n  case 4:\n  case 5:\n  case 6:\n    image->depth = 0x20;\n    break;\n  default:\n    tag = "Unsupported band format";\n    line = 0x1bb;\n    goto LAB_0028b9a2;\n  case 8:\n    image->depth = 0x40;\n  }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n  case 0:\n  case 1:\n    image->depth = 8;\n    break;\n  case 2:\n  case 3:\n    image->depth = 0x10;\n    break;\n  case 4:\n  case 5:\n  case 6:\n    image->depth = 0x20;\n    break;\n  default:\n    tag = "Unsupported band format";\n    line = 0x1bb;\n    goto LAB_0028b9a2;\n  case 8:\n    image->depth = 0x40;\n  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n    image->depth = 8;\n    break;" case number_literal : (expression_statement "image->depth = 8;" (assignment_expression "image->depth = 8" (field_expression "image->depth" identifier -> field_identifier) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n    image->depth = 0x10;\n    break;" case number_literal : (expression_statement "image->depth = 0x10;" (assignment_expression "image->depth = 0x10" (field_expression "image->depth" identifier -> field_identifier) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:" case number_literal :) (case_statement "case 6:\n    image->depth = 0x20;\n    break;" case number_literal : (expression_statement "image->depth = 0x20;" (assignment_expression "image->depth = 0x20" (field_expression "image->depth" identifier -> field_identifier) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n    tag = "Unsupported band format";\n    line = 0x1bb;\n    goto LAB_0028b9a2;" default : (expression_statement "tag = "Unsupported band format";" (assignment_expression "tag = "Unsupported band format"" identifier = (string_literal ""Unsupported band format"" " string_content ")) ;) (expression_statement "line = 0x1bb;" (assignment_expression "line = 0x1bb" identifier = number_literal) ;) (goto_statement "goto LAB_0028b9a2;" goto statement_identifier ;)) (case_statement "case 8:\n    image->depth = 0x40;" case number_literal : (expression_statement "image->depth = 0x40;" (assignment_expression "image->depth = 0x40" (field_expression "image->depth" identifier -> field_identifier) = number_literal) ;)) })) (expression_statement "uVar7 = ReadBlobLong(image);" (assignment_expression "uVar7 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar8 = ReadBlobLong(image);" (assignment_expression "uVar8 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (switch_statement "switch(uVar8) {\n  default:\n    tag = "Unsupported colorspace";\n    line = 0x1e2;\n    goto LAB_0028b9a2;\n  case 1:\n  case 0x1a:\n    SetImageColorspace(image,GRAYColorspace,exception);\n    if (uVar5 == 2) {\nLAB_0028bb8c:\n      image->alpha_trait = BlendPixelTrait;\n    }\n    break;\n  case 0xf:\n    SetImageColorspace(image,CMYKColorspace,exception);\n    if (uVar5 == 5) {\nLAB_0028bbbc:\n      image->alpha_trait = BlendPixelTrait;\n    }\n    goto LAB_0028b9e4;\n  case 0x11:\n  case 0x19:\n    SetImageColorspace(image,RGBColorspace,exception);\n    if (uVar5 == 4) goto LAB_0028bb8c;\n    break;\n  case 0x16:\n    SetImageColorspace(image,sRGBColorspace,exception);\n    if (uVar5 == 4) goto LAB_0028bbbc;\nLAB_0028b9e4:\n    SetImageBackgroundColor(image,exception);\n    image->units = PixelsPerCentimeterResolution;\n    fVar15 = ReadBlobFloat(image);\n    fVar16 = DAT_002aa50c;\n    (image->resolution).x = (double)(fVar15 * DAT_002aa50c);\n    fVar15 = ReadBlobFloat(image);\n    (image->resolution).y = (double)(fVar16 * fVar15);\n    ReadBlobLongLong(image);\n    ReadBlobLongLong(image);\n    ReadBlobLongLong(image);\n    if (image_info->ping != MagickFalse) goto LAB_0028b7fb;\n    goto LAB_0028ba52;\n  }" switch (parenthesized_expression "(uVar8)" ( identifier )) (compound_statement "{\n  default:\n    tag = "Unsupported colorspace";\n    line = 0x1e2;\n    goto LAB_0028b9a2;\n  case 1:\n  case 0x1a:\n    SetImageColorspace(image,GRAYColorspace,exception);\n    if (uVar5 == 2) {\nLAB_0028bb8c:\n      image->alpha_trait = BlendPixelTrait;\n    }\n    break;\n  case 0xf:\n    SetImageColorspace(image,CMYKColorspace,exception);\n    if (uVar5 == 5) {\nLAB_0028bbbc:\n      image->alpha_trait = BlendPixelTrait;\n    }\n    goto LAB_0028b9e4;\n  case 0x11:\n  case 0x19:\n    SetImageColorspace(image,RGBColorspace,exception);\n    if (uVar5 == 4) goto LAB_0028bb8c;\n    break;\n  case 0x16:\n    SetImageColorspace(image,sRGBColorspace,exception);\n    if (uVar5 == 4) goto LAB_0028bbbc;\nLAB_0028b9e4:\n    SetImageBackgroundColor(image,exception);\n    image->units = PixelsPerCentimeterResolution;\n    fVar15 = ReadBlobFloat(image);\n    fVar16 = DAT_002aa50c;\n    (image->resolution).x = (double)(fVar15 * DAT_002aa50c);\n    fVar15 = ReadBlobFloat(image);\n    (image->resolution).y = (double)(fVar16 * fVar15);\n    ReadBlobLongLong(image);\n    ReadBlobLongLong(image);\n    ReadBlobLongLong(image);\n    if (image_info->ping != MagickFalse) goto LAB_0028b7fb;\n    goto LAB_0028ba52;\n  }" { (case_statement "default:\n    tag = "Unsupported colorspace";\n    line = 0x1e2;\n    goto LAB_0028b9a2;" default : (expression_statement "tag = "Unsupported colorspace";" (assignment_expression "tag = "Unsupported colorspace"" identifier = (string_literal ""Unsupported colorspace"" " string_content ")) ;) (expression_statement "line = 0x1e2;" (assignment_expression "line = 0x1e2" identifier = number_literal) ;) (goto_statement "goto LAB_0028b9a2;" goto statement_identifier ;)) (case_statement "case 1:" case number_literal :) (case_statement "case 0x1a:\n    SetImageColorspace(image,GRAYColorspace,exception);\n    if (uVar5 == 2) {\nLAB_0028bb8c:\n      image->alpha_trait = BlendPixelTrait;\n    }\n    break;" case number_literal : (expression_statement "SetImageColorspace(image,GRAYColorspace,exception);" (call_expression "SetImageColorspace(image,GRAYColorspace,exception)" identifier (argument_list "(image,GRAYColorspace,exception)" ( identifier , identifier , identifier ))) ;) (if_statement "if (uVar5 == 2) {\nLAB_0028bb8c:\n      image->alpha_trait = BlendPixelTrait;\n    }" if (parenthesized_expression "(uVar5 == 2)" ( (binary_expression "uVar5 == 2" identifier == number_literal) )) (compound_statement "{\nLAB_0028bb8c:\n      image->alpha_trait = BlendPixelTrait;\n    }" { (labeled_statement "LAB_0028bb8c:\n      image->alpha_trait = BlendPixelTrait;" statement_identifier : (expression_statement "image->alpha_trait = BlendPixelTrait;" (assignment_expression "image->alpha_trait = BlendPixelTrait" (field_expression "image->alpha_trait" identifier -> field_identifier) = identifier) ;)) })) (break_statement "break;" break ;)) (case_statement "case 0xf:\n    SetImageColorspace(image,CMYKColorspace,exception);\n    if (uVar5 == 5) {\nLAB_0028bbbc:\n      image->alpha_trait = BlendPixelTrait;\n    }\n    goto LAB_0028b9e4;" case number_literal : (expression_statement "SetImageColorspace(image,CMYKColorspace,exception);" (call_expression "SetImageColorspace(image,CMYKColorspace,exception)" identifier (argument_list "(image,CMYKColorspace,exception)" ( identifier , identifier , identifier ))) ;) (if_statement "if (uVar5 == 5) {\nLAB_0028bbbc:\n      image->alpha_trait = BlendPixelTrait;\n    }" if (parenthesized_expression "(uVar5 == 5)" ( (binary_expression "uVar5 == 5" identifier == number_literal) )) (compound_statement "{\nLAB_0028bbbc:\n      image->alpha_trait = BlendPixelTrait;\n    }" { (labeled_statement "LAB_0028bbbc:\n      image->alpha_trait = BlendPixelTrait;" statement_identifier : (expression_statement "image->alpha_trait = BlendPixelTrait;" (assignment_expression "image->alpha_trait = BlendPixelTrait" (field_expression "image->alpha_trait" identifier -> field_identifier) = identifier) ;)) })) (goto_statement "goto LAB_0028b9e4;" goto statement_identifier ;)) (case_statement "case 0x11:" case number_literal :) (case_statement "case 0x19:\n    SetImageColorspace(image,RGBColorspace,exception);\n    if (uVar5 == 4) goto LAB_0028bb8c;\n    break;" case number_literal : (expression_statement "SetImageColorspace(image,RGBColorspace,exception);" (call_expression "SetImageColorspace(image,RGBColorspace,exception)" identifier (argument_list "(image,RGBColorspace,exception)" ( identifier , identifier , identifier ))) ;) (if_statement "if (uVar5 == 4) goto LAB_0028bb8c;" if (parenthesized_expression "(uVar5 == 4)" ( (binary_expression "uVar5 == 4" identifier == number_literal) )) (goto_statement "goto LAB_0028bb8c;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 0x16:\n    SetImageColorspace(image,sRGBColorspace,exception);\n    if (uVar5 == 4) goto LAB_0028bbbc;\nLAB_0028b9e4:\n    SetImageBackgroundColor(image,exception);\n    image->units = PixelsPerCentimeterResolution;\n    fVar15 = ReadBlobFloat(image);\n    fVar16 = DAT_002aa50c;\n    (image->resolution).x = (double)(fVar15 * DAT_002aa50c);\n    fVar15 = ReadBlobFloat(image);\n    (image->resolution).y = (double)(fVar16 * fVar15);\n    ReadBlobLongLong(image);\n    ReadBlobLongLong(image);\n    ReadBlobLongLong(image);\n    if (image_info->ping != MagickFalse) goto LAB_0028b7fb;\n    goto LAB_0028ba52;" case number_literal : (expression_statement "SetImageColorspace(image,sRGBColorspace,exception);" (call_expression "SetImageColorspace(image,sRGBColorspace,exception)" identifier (argument_list "(image,sRGBColorspace,exception)" ( identifier , identifier , identifier ))) ;) (if_statement "if (uVar5 == 4) goto LAB_0028bbbc;" if (parenthesized_expression "(uVar5 == 4)" ( (binary_expression "uVar5 == 4" identifier == number_literal) )) (goto_statement "goto LAB_0028bbbc;" goto statement_identifier ;)) (labeled_statement "LAB_0028b9e4:\n    SetImageBackgroundColor(image,exception);" statement_identifier : (expression_statement "SetImageBackgroundColor(image,exception);" (call_expression "SetImageBackgroundColor(image,exception)" identifier (argument_list "(image,exception)" ( identifier , identifier ))) ;)) (expression_statement "image->units = PixelsPerCentimeterResolution;" (assignment_expression "image->units = PixelsPerCentimeterResolution" (field_expression "image->units" identifier -> field_identifier) = identifier) ;) (expression_statement "fVar15 = ReadBlobFloat(image);" (assignment_expression "fVar15 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "fVar16 = DAT_002aa50c;" (assignment_expression "fVar16 = DAT_002aa50c" identifier = identifier) ;) (expression_statement "(image->resolution).x = (double)(fVar15 * DAT_002aa50c);" (assignment_expression "(image->resolution).x = (double)(fVar15 * DAT_002aa50c)" (field_expression "(image->resolution).x" (parenthesized_expression "(image->resolution)" ( (field_expression "image->resolution" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(double)(fVar15 * DAT_002aa50c)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar15 * DAT_002aa50c)" ( (binary_expression "fVar15 * DAT_002aa50c" identifier * identifier) )))) ;) (expression_statement "fVar15 = ReadBlobFloat(image);" (assignment_expression "fVar15 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "(image->resolution).y = (double)(fVar16 * fVar15);" (assignment_expression "(image->resolution).y = (double)(fVar16 * fVar15)" (field_expression "(image->resolution).y" (parenthesized_expression "(image->resolution)" ( (field_expression "image->resolution" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(double)(fVar16 * fVar15)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar16 * fVar15)" ( (binary_expression "fVar16 * fVar15" identifier * identifier) )))) ;) (expression_statement "ReadBlobLongLong(image);" (call_expression "ReadBlobLongLong(image)" identifier (argument_list "(image)" ( identifier ))) ;) (expression_statement "ReadBlobLongLong(image);" (call_expression "ReadBlobLongLong(image)" identifier (argument_list "(image)" ( identifier ))) ;) (expression_statement "ReadBlobLongLong(image);" (call_expression "ReadBlobLongLong(image)" identifier (argument_list "(image)" ( identifier ))) ;) (if_statement "if (image_info->ping != MagickFalse) goto LAB_0028b7fb;" if (parenthesized_expression "(image_info->ping != MagickFalse)" ( (binary_expression "image_info->ping != MagickFalse" (field_expression "image_info->ping" identifier -> field_identifier) != identifier) )) (goto_statement "goto LAB_0028b7fb;" goto statement_identifier ;)) (goto_statement "goto LAB_0028ba52;" goto statement_identifier ;)) })) (expression_statement "SetImageBackgroundColor(image,exception);" (call_expression "SetImageBackgroundColor(image,exception)" identifier (argument_list "(image,exception)" ( identifier , identifier ))) ;) (expression_statement "image->units = PixelsPerCentimeterResolution;" (assignment_expression "image->units = PixelsPerCentimeterResolution" (field_expression "image->units" identifier -> field_identifier) = identifier) ;) (expression_statement "fVar15 = ReadBlobFloat(image);" (assignment_expression "fVar15 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "fVar16 = DAT_002aa50c;" (assignment_expression "fVar16 = DAT_002aa50c" identifier = identifier) ;) (expression_statement "(image->resolution).x = (double)(fVar15 * DAT_002aa50c);" (assignment_expression "(image->resolution).x = (double)(fVar15 * DAT_002aa50c)" (field_expression "(image->resolution).x" (parenthesized_expression "(image->resolution)" ( (field_expression "image->resolution" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(double)(fVar15 * DAT_002aa50c)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar15 * DAT_002aa50c)" ( (binary_expression "fVar15 * DAT_002aa50c" identifier * identifier) )))) ;) (expression_statement "fVar15 = ReadBlobFloat(image);" (assignment_expression "fVar15 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "(image->resolution).y = (double)(fVar16 * fVar15);" (assignment_expression "(image->resolution).y = (double)(fVar16 * fVar15)" (field_expression "(image->resolution).y" (parenthesized_expression "(image->resolution)" ( (field_expression "image->resolution" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(double)(fVar16 * fVar15)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar16 * fVar15)" ( (binary_expression "fVar16 * fVar15" identifier * identifier) )))) ;) (expression_statement "ReadBlobLongLong(image);" (call_expression "ReadBlobLongLong(image)" identifier (argument_list "(image)" ( identifier ))) ;) (expression_statement "ReadBlobLongLong(image);" (call_expression "ReadBlobLongLong(image)" identifier (argument_list "(image)" ( identifier ))) ;) (expression_statement "ReadBlobLongLong(image);" (call_expression "ReadBlobLongLong(image)" identifier (argument_list "(image)" ( identifier ))) ;) (if_statement "if (image_info->ping != MagickFalse) goto LAB_0028b7fb;" if (parenthesized_expression "(image_info->ping != MagickFalse)" ( (binary_expression "image_info->ping != MagickFalse" (field_expression "image_info->ping" identifier -> field_identifier) != identifier) )) (goto_statement "goto LAB_0028b7fb;" goto statement_identifier ;)) (if_statement "if (uVar8 < 0x1b) {\nLAB_0028ba52:\n    uVar8 = 1 << ((byte)uVar8 & 0x1f);\n    if (((uVar8 & 0x428002) == 0) &&\n       ((((uVar8 & 0x6000000) == 0 || (8 < uVar6)) || ((1 << ((byte)uVar6 & 0x1f) & 0x17cU) == 0))))\n    goto LAB_0028b983;\n    if (4 < uVar5 - 1) {\n      tag = "Unsupported number of channels";\n      line = 500;\n      goto LAB_0028b9a2;\n    }\n    if (uVar7 != 0) {\n      tag = "Unsupported coding";\n      line = 0x1f8;\n      goto LAB_0028b9a2;\n    }\n    if (0 < (int)image->rows) {\n      local_1058 = 0;\n      do {\n        pQVar9 = GetAuthenticPixels(image,0,local_1058,image->columns,1,exception);\n        if (pQVar9 == (Quantum *)0x0) {\nLAB_0028c2d0:\n          bVar2 = false;\n          goto LAB_0028c2d7;\n        }\n        if (0 < (int)image->columns) {\n          uVar7 = uVar8 & 0x6000000;\n          uVar13 = uVar8 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                break;\n              default:\n                pPVar12 = image->channel_map;\n                pQVar9[pPVar12->offset] = 0.0;\n                if (2 < uVar5) goto LAB_0028bd09;\n                dVar14 = 0.0;\n                goto LAB_0028bc37;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                dVar14 = dVar14 * (double)DAT_0029f710;\n              }\n              pPVar12 = image->channel_map;\n              pQVar9[pPVar12->offset] = dVar14;\n              if (uVar5 < 3) goto LAB_0028bc37;\nLAB_0028bd09:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                fVar16 = (float)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                pQVar9[pPVar12[1].offset] = 0.0;\n                goto LAB_0028be31;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              pQVar9[image->channel_map[1].offset] = (double)fVar16;\nLAB_0028be31:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                goto _L310;\n              case 2:\n              case 3:\n                goto _L312;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                goto _L437;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              goto LAB_0028be75;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L429:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L429;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n              }\n              goto LAB_0028bc22;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c07a;\n            default:\n              goto _L429;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c07a:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\nLAB_0028bc22:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12->offset] = dVar14;\n            if (uVar5 < 3) {\nLAB_0028bc37:\n              pQVar9[pPVar12[1].offset] = dVar14;\n              pQVar9[pPVar12[2].offset] = dVar14;\n              if (uVar5 == 2) {\n                if (uVar13 != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }\n                }\n                if ((uVar8 & 0x20002) != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }\n                }\n                if (uVar7 != 0) {\n                  switch(uVar6) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }\n                }\n                goto _L443;\n              }\n              goto LAB_0028bc60;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L435:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L435;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              pQVar9[pPVar12[1].offset] = dVar14;\n              if (uVar7 == 0) goto _L437;\n              switch(uVar6) {\n              default:\n                goto _L437;\n              case 2:\n              case 3:\n_L312:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)ROUND(fVar16);\n                break;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)ROUND(dVar14);\n              }\n              fVar16 = (float)(uVar11 & 0xffff);\n              goto LAB_0028be75;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c4c8;\n            default:\n              fVar16 = 0.0;\n              goto LAB_0028c4eb;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c4c8:\n              uVar11 = (uint)local_103e;\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028c4eb:\n            pQVar9[pPVar12[1].offset] = (double)fVar16;\n            switch(uVar6) {\n            case 0:\n            case 1:\n_L310:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n              break;\n            default:\n_L437:\n              fVar16 = 0.0;\n              goto LAB_0028be75;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\nLAB_0028be75:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12[2].offset] = (double)fVar16;\n            if (uVar5 == 4) {\n              if (image->colorspace == CMYKColorspace) {\n                if (uVar13 == 0) {\n                  if ((uVar8 & 0x20002) == 0) {\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }\n                  else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }\n                }\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  pQVar9[pPVar12[5].offset] = (double)fVar16;\n                }\n                goto LAB_0028bc60;\n              }\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) == 0) {\n                  if (uVar7 == 0) {\n_L443:\n                    dVar14 = 0.0;\n                  }\n                  else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }\nLAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                  pPVar12 = image->channel_map;\n                }\n              }\n              else {\n                switch(uVar6) {\n                case 0:\n                case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;\n                case 2:\n                case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;\n                case 4:\n                case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;\n                case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L443;\n                case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n              goto LAB_0028c1d8;\n            }\n            if (uVar5 != 5) goto LAB_0028bc60;\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                pPVar12 = image->channel_map;\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L391;\n              default:\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  dVar14 = 0.0;\n                  goto LAB_0028cba5;\n                }\n                goto LAB_0028c951;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                pPVar12 = image->channel_map;\n                dVar14 = dVar14 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L392;\n              }\n              pPVar12 = image->channel_map;\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028c951;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L445:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L445;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028cbc9;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028cda5;\n            default:\n              dVar14 = 0.0;\n              goto LAB_0028cdc8;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028cda5:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028cdc8:\n            if (pPVar12[5].traits == UndefinedPixelTrait) {\nLAB_0028cdd5:\n              switch(uVar6) {\n              case 0:\n              case 1:\n_L409:\n                uVar11 = ReadBlobByte(image);\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                break;\n              default:\n                goto _L448;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n              }\n              dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            }\n            else {\nLAB_0028cba5:\n              pQVar9[pPVar12[5].offset] = dVar14;\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;\nLAB_0028cbc9:\n                if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }\n              }\n              else {\nLAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n            }\n            pPVar12 = image->channel_map;\nLAB_0028c1d8:\n            if (pPVar12[4].traits != UndefinedPixelTrait) {\n              pQVar9[pPVar12[4].offset] = dVar14;\n            }\nLAB_0028bc60:\n            local_106c = local_106c + 1;\n            pQVar9 = pQVar9 + image->number_channels;\n          } while (local_106c < (int)image->columns);\n        }\n        MVar4 = SyncAuthenticPixels(image,exception);\n        if (MVar4 == MagickFalse) goto LAB_0028c2d0;\n        local_1058 = local_1058 + 1;\n      } while (local_1058 < (int)image->rows);\n    }\n    bVar2 = true;\nLAB_0028c2d7:\n    metadata = (char *)0x0;\n    while (sVar10 = ReadBlob(image,0xfff,buffer), sVar10 != 0) {\n      buffer[sVar10] = '\0';\n      if (metadata == (char *)0x0) {\n        metadata = ConstantString(buffer);\n      }\n      else {\n        ConcatenateString(&metadata,buffer);\n      }\n    }\n    if (metadata != (char *)0x0) {\n      SetImageProperty(image,"vips:metadata",metadata,exception);\n      metadata = (char *)RelinquishMagickMemory(metadata);\n    }\n    CloseBlob(image);\n    if (bVar2) goto LAB_0028b7fb;\n  }\n  else {\nLAB_0028b983:\n    tag = "Unsupported combination of band format and colorspace";\n    line = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (exception,"coders/vips.c","ReadVIPSImage",line,CoderError,tag,"`%s\'",\n               image_info->filename);\nLAB_0028b7e8:\n    CloseBlob(image);\n    DestroyImageList(image);\n  }" if (parenthesized_expression "(uVar8 < 0x1b)" ( (binary_expression "uVar8 < 0x1b" identifier < number_literal) )) (compound_statement "{\nLAB_0028ba52:\n    uVar8 = 1 << ((byte)uVar8 & 0x1f);\n    if (((uVar8 & 0x428002) == 0) &&\n       ((((uVar8 & 0x6000000) == 0 || (8 < uVar6)) || ((1 << ((byte)uVar6 & 0x1f) & 0x17cU) == 0))))\n    goto LAB_0028b983;\n    if (4 < uVar5 - 1) {\n      tag = "Unsupported number of channels";\n      line = 500;\n      goto LAB_0028b9a2;\n    }\n    if (uVar7 != 0) {\n      tag = "Unsupported coding";\n      line = 0x1f8;\n      goto LAB_0028b9a2;\n    }\n    if (0 < (int)image->rows) {\n      local_1058 = 0;\n      do {\n        pQVar9 = GetAuthenticPixels(image,0,local_1058,image->columns,1,exception);\n        if (pQVar9 == (Quantum *)0x0) {\nLAB_0028c2d0:\n          bVar2 = false;\n          goto LAB_0028c2d7;\n        }\n        if (0 < (int)image->columns) {\n          uVar7 = uVar8 & 0x6000000;\n          uVar13 = uVar8 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                break;\n              default:\n                pPVar12 = image->channel_map;\n                pQVar9[pPVar12->offset] = 0.0;\n                if (2 < uVar5) goto LAB_0028bd09;\n                dVar14 = 0.0;\n                goto LAB_0028bc37;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                dVar14 = dVar14 * (double)DAT_0029f710;\n              }\n              pPVar12 = image->channel_map;\n              pQVar9[pPVar12->offset] = dVar14;\n              if (uVar5 < 3) goto LAB_0028bc37;\nLAB_0028bd09:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                fVar16 = (float)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                pQVar9[pPVar12[1].offset] = 0.0;\n                goto LAB_0028be31;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              pQVar9[image->channel_map[1].offset] = (double)fVar16;\nLAB_0028be31:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                goto _L310;\n              case 2:\n              case 3:\n                goto _L312;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                goto _L437;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              goto LAB_0028be75;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L429:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L429;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n              }\n              goto LAB_0028bc22;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c07a;\n            default:\n              goto _L429;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c07a:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\nLAB_0028bc22:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12->offset] = dVar14;\n            if (uVar5 < 3) {\nLAB_0028bc37:\n              pQVar9[pPVar12[1].offset] = dVar14;\n              pQVar9[pPVar12[2].offset] = dVar14;\n              if (uVar5 == 2) {\n                if (uVar13 != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }\n                }\n                if ((uVar8 & 0x20002) != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }\n                }\n                if (uVar7 != 0) {\n                  switch(uVar6) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }\n                }\n                goto _L443;\n              }\n              goto LAB_0028bc60;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L435:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L435;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              pQVar9[pPVar12[1].offset] = dVar14;\n              if (uVar7 == 0) goto _L437;\n              switch(uVar6) {\n              default:\n                goto _L437;\n              case 2:\n              case 3:\n_L312:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)ROUND(fVar16);\n                break;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)ROUND(dVar14);\n              }\n              fVar16 = (float)(uVar11 & 0xffff);\n              goto LAB_0028be75;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c4c8;\n            default:\n              fVar16 = 0.0;\n              goto LAB_0028c4eb;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c4c8:\n              uVar11 = (uint)local_103e;\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028c4eb:\n            pQVar9[pPVar12[1].offset] = (double)fVar16;\n            switch(uVar6) {\n            case 0:\n            case 1:\n_L310:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n              break;\n            default:\n_L437:\n              fVar16 = 0.0;\n              goto LAB_0028be75;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\nLAB_0028be75:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12[2].offset] = (double)fVar16;\n            if (uVar5 == 4) {\n              if (image->colorspace == CMYKColorspace) {\n                if (uVar13 == 0) {\n                  if ((uVar8 & 0x20002) == 0) {\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }\n                  else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }\n                }\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  pQVar9[pPVar12[5].offset] = (double)fVar16;\n                }\n                goto LAB_0028bc60;\n              }\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) == 0) {\n                  if (uVar7 == 0) {\n_L443:\n                    dVar14 = 0.0;\n                  }\n                  else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }\nLAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                  pPVar12 = image->channel_map;\n                }\n              }\n              else {\n                switch(uVar6) {\n                case 0:\n                case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;\n                case 2:\n                case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;\n                case 4:\n                case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;\n                case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L443;\n                case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n              goto LAB_0028c1d8;\n            }\n            if (uVar5 != 5) goto LAB_0028bc60;\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                pPVar12 = image->channel_map;\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L391;\n              default:\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  dVar14 = 0.0;\n                  goto LAB_0028cba5;\n                }\n                goto LAB_0028c951;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                pPVar12 = image->channel_map;\n                dVar14 = dVar14 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L392;\n              }\n              pPVar12 = image->channel_map;\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028c951;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L445:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L445;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028cbc9;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028cda5;\n            default:\n              dVar14 = 0.0;\n              goto LAB_0028cdc8;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028cda5:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028cdc8:\n            if (pPVar12[5].traits == UndefinedPixelTrait) {\nLAB_0028cdd5:\n              switch(uVar6) {\n              case 0:\n              case 1:\n_L409:\n                uVar11 = ReadBlobByte(image);\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                break;\n              default:\n                goto _L448;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n              }\n              dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            }\n            else {\nLAB_0028cba5:\n              pQVar9[pPVar12[5].offset] = dVar14;\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;\nLAB_0028cbc9:\n                if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }\n              }\n              else {\nLAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n            }\n            pPVar12 = image->channel_map;\nLAB_0028c1d8:\n            if (pPVar12[4].traits != UndefinedPixelTrait) {\n              pQVar9[pPVar12[4].offset] = dVar14;\n            }\nLAB_0028bc60:\n            local_106c = local_106c + 1;\n            pQVar9 = pQVar9 + image->number_channels;\n          } while (local_106c < (int)image->columns);\n        }\n        MVar4 = SyncAuthenticPixels(image,exception);\n        if (MVar4 == MagickFalse) goto LAB_0028c2d0;\n        local_1058 = local_1058 + 1;\n      } while (local_1058 < (int)image->rows);\n    }\n    bVar2 = true;\nLAB_0028c2d7:\n    metadata = (char *)0x0;\n    while (sVar10 = ReadBlob(image,0xfff,buffer), sVar10 != 0) {\n      buffer[sVar10] = '\0';\n      if (metadata == (char *)0x0) {\n        metadata = ConstantString(buffer);\n      }\n      else {\n        ConcatenateString(&metadata,buffer);\n      }\n    }\n    if (metadata != (char *)0x0) {\n      SetImageProperty(image,"vips:metadata",metadata,exception);\n      metadata = (char *)RelinquishMagickMemory(metadata);\n    }\n    CloseBlob(image);\n    if (bVar2) goto LAB_0028b7fb;\n  }" { (labeled_statement "LAB_0028ba52:\n    uVar8 = 1 << ((byte)uVar8 & 0x1f);" statement_identifier : (expression_statement "uVar8 = 1 << ((byte)uVar8 & 0x1f);" (assignment_expression "uVar8 = 1 << ((byte)uVar8 & 0x1f)" identifier = (binary_expression "1 << ((byte)uVar8 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar8 & 0x1f)" ( (binary_expression "(byte)uVar8 & 0x1f" (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;)) (if_statement "if (((uVar8 & 0x428002) == 0) &&\n       ((((uVar8 & 0x6000000) == 0 || (8 < uVar6)) || ((1 << ((byte)uVar6 & 0x1f) & 0x17cU) == 0))))\n    goto LAB_0028b983;" if (parenthesized_expression "(((uVar8 & 0x428002) == 0) &&\n       ((((uVar8 & 0x6000000) == 0 || (8 < uVar6)) || ((1 << ((byte)uVar6 & 0x1f) & 0x17cU) == 0))))" ( (binary_expression "((uVar8 & 0x428002) == 0) &&\n       ((((uVar8 & 0x6000000) == 0 || (8 < uVar6)) || ((1 << ((byte)uVar6 & 0x1f) & 0x17cU) == 0)))" (parenthesized_expression "((uVar8 & 0x428002) == 0)" ( (binary_expression "(uVar8 & 0x428002) == 0" (parenthesized_expression "(uVar8 & 0x428002)" ( (binary_expression "uVar8 & 0x428002" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((((uVar8 & 0x6000000) == 0 || (8 < uVar6)) || ((1 << ((byte)uVar6 & 0x1f) & 0x17cU) == 0)))" ( (parenthesized_expression "(((uVar8 & 0x6000000) == 0 || (8 < uVar6)) || ((1 << ((byte)uVar6 & 0x1f) & 0x17cU) == 0))" ( (binary_expression "((uVar8 & 0x6000000) == 0 || (8 < uVar6)) || ((1 << ((byte)uVar6 & 0x1f) & 0x17cU) == 0)" (parenthesized_expression "((uVar8 & 0x6000000) == 0 || (8 < uVar6))" ( (binary_expression "(uVar8 & 0x6000000) == 0 || (8 < uVar6)" (binary_expression "(uVar8 & 0x6000000) == 0" (parenthesized_expression "(uVar8 & 0x6000000)" ( (binary_expression "uVar8 & 0x6000000" identifier & number_literal) )) == number_literal) || (parenthesized_expression "(8 < uVar6)" ( (binary_expression "8 < uVar6" number_literal < identifier) ))) )) || (parenthesized_expression "((1 << ((byte)uVar6 & 0x1f) & 0x17cU) == 0)" ( (binary_expression "(1 << ((byte)uVar6 & 0x1f) & 0x17cU) == 0" (parenthesized_expression "(1 << ((byte)uVar6 & 0x1f) & 0x17cU)" ( (binary_expression "1 << ((byte)uVar6 & 0x1f) & 0x17cU" (binary_expression "1 << ((byte)uVar6 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar6 & 0x1f)" ( (binary_expression "(byte)uVar6 & 0x1f" (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) == number_literal) ))) )) ))) )) (goto_statement "goto LAB_0028b983;" goto statement_identifier ;)) (if_statement "if (4 < uVar5 - 1) {\n      tag = "Unsupported number of channels";\n      line = 500;\n      goto LAB_0028b9a2;\n    }" if (parenthesized_expression "(4 < uVar5 - 1)" ( (binary_expression "4 < uVar5 - 1" number_literal < (binary_expression "uVar5 - 1" identifier - number_literal)) )) (compound_statement "{\n      tag = "Unsupported number of channels";\n      line = 500;\n      goto LAB_0028b9a2;\n    }" { (expression_statement "tag = "Unsupported number of channels";" (assignment_expression "tag = "Unsupported number of channels"" identifier = (string_literal ""Unsupported number of channels"" " string_content ")) ;) (expression_statement "line = 500;" (assignment_expression "line = 500" identifier = number_literal) ;) (goto_statement "goto LAB_0028b9a2;" goto statement_identifier ;) })) (if_statement "if (uVar7 != 0) {\n      tag = "Unsupported coding";\n      line = 0x1f8;\n      goto LAB_0028b9a2;\n    }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      tag = "Unsupported coding";\n      line = 0x1f8;\n      goto LAB_0028b9a2;\n    }" { (expression_statement "tag = "Unsupported coding";" (assignment_expression "tag = "Unsupported coding"" identifier = (string_literal ""Unsupported coding"" " string_content ")) ;) (expression_statement "line = 0x1f8;" (assignment_expression "line = 0x1f8" identifier = number_literal) ;) (goto_statement "goto LAB_0028b9a2;" goto statement_identifier ;) })) (if_statement "if (0 < (int)image->rows) {\n      local_1058 = 0;\n      do {\n        pQVar9 = GetAuthenticPixels(image,0,local_1058,image->columns,1,exception);\n        if (pQVar9 == (Quantum *)0x0) {\nLAB_0028c2d0:\n          bVar2 = false;\n          goto LAB_0028c2d7;\n        }\n        if (0 < (int)image->columns) {\n          uVar7 = uVar8 & 0x6000000;\n          uVar13 = uVar8 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                break;\n              default:\n                pPVar12 = image->channel_map;\n                pQVar9[pPVar12->offset] = 0.0;\n                if (2 < uVar5) goto LAB_0028bd09;\n                dVar14 = 0.0;\n                goto LAB_0028bc37;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                dVar14 = dVar14 * (double)DAT_0029f710;\n              }\n              pPVar12 = image->channel_map;\n              pQVar9[pPVar12->offset] = dVar14;\n              if (uVar5 < 3) goto LAB_0028bc37;\nLAB_0028bd09:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                fVar16 = (float)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                pQVar9[pPVar12[1].offset] = 0.0;\n                goto LAB_0028be31;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              pQVar9[image->channel_map[1].offset] = (double)fVar16;\nLAB_0028be31:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                goto _L310;\n              case 2:\n              case 3:\n                goto _L312;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                goto _L437;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              goto LAB_0028be75;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L429:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L429;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n              }\n              goto LAB_0028bc22;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c07a;\n            default:\n              goto _L429;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c07a:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\nLAB_0028bc22:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12->offset] = dVar14;\n            if (uVar5 < 3) {\nLAB_0028bc37:\n              pQVar9[pPVar12[1].offset] = dVar14;\n              pQVar9[pPVar12[2].offset] = dVar14;\n              if (uVar5 == 2) {\n                if (uVar13 != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }\n                }\n                if ((uVar8 & 0x20002) != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }\n                }\n                if (uVar7 != 0) {\n                  switch(uVar6) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }\n                }\n                goto _L443;\n              }\n              goto LAB_0028bc60;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L435:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L435;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              pQVar9[pPVar12[1].offset] = dVar14;\n              if (uVar7 == 0) goto _L437;\n              switch(uVar6) {\n              default:\n                goto _L437;\n              case 2:\n              case 3:\n_L312:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)ROUND(fVar16);\n                break;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)ROUND(dVar14);\n              }\n              fVar16 = (float)(uVar11 & 0xffff);\n              goto LAB_0028be75;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c4c8;\n            default:\n              fVar16 = 0.0;\n              goto LAB_0028c4eb;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c4c8:\n              uVar11 = (uint)local_103e;\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028c4eb:\n            pQVar9[pPVar12[1].offset] = (double)fVar16;\n            switch(uVar6) {\n            case 0:\n            case 1:\n_L310:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n              break;\n            default:\n_L437:\n              fVar16 = 0.0;\n              goto LAB_0028be75;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\nLAB_0028be75:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12[2].offset] = (double)fVar16;\n            if (uVar5 == 4) {\n              if (image->colorspace == CMYKColorspace) {\n                if (uVar13 == 0) {\n                  if ((uVar8 & 0x20002) == 0) {\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }\n                  else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }\n                }\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  pQVar9[pPVar12[5].offset] = (double)fVar16;\n                }\n                goto LAB_0028bc60;\n              }\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) == 0) {\n                  if (uVar7 == 0) {\n_L443:\n                    dVar14 = 0.0;\n                  }\n                  else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }\nLAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                  pPVar12 = image->channel_map;\n                }\n              }\n              else {\n                switch(uVar6) {\n                case 0:\n                case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;\n                case 2:\n                case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;\n                case 4:\n                case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;\n                case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L443;\n                case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n              goto LAB_0028c1d8;\n            }\n            if (uVar5 != 5) goto LAB_0028bc60;\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                pPVar12 = image->channel_map;\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L391;\n              default:\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  dVar14 = 0.0;\n                  goto LAB_0028cba5;\n                }\n                goto LAB_0028c951;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                pPVar12 = image->channel_map;\n                dVar14 = dVar14 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L392;\n              }\n              pPVar12 = image->channel_map;\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028c951;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L445:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L445;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028cbc9;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028cda5;\n            default:\n              dVar14 = 0.0;\n              goto LAB_0028cdc8;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028cda5:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028cdc8:\n            if (pPVar12[5].traits == UndefinedPixelTrait) {\nLAB_0028cdd5:\n              switch(uVar6) {\n              case 0:\n              case 1:\n_L409:\n                uVar11 = ReadBlobByte(image);\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                break;\n              default:\n                goto _L448;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n              }\n              dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            }\n            else {\nLAB_0028cba5:\n              pQVar9[pPVar12[5].offset] = dVar14;\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;\nLAB_0028cbc9:\n                if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }\n              }\n              else {\nLAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n            }\n            pPVar12 = image->channel_map;\nLAB_0028c1d8:\n            if (pPVar12[4].traits != UndefinedPixelTrait) {\n              pQVar9[pPVar12[4].offset] = dVar14;\n            }\nLAB_0028bc60:\n            local_106c = local_106c + 1;\n            pQVar9 = pQVar9 + image->number_channels;\n          } while (local_106c < (int)image->columns);\n        }\n        MVar4 = SyncAuthenticPixels(image,exception);\n        if (MVar4 == MagickFalse) goto LAB_0028c2d0;\n        local_1058 = local_1058 + 1;\n      } while (local_1058 < (int)image->rows);\n    }" if (parenthesized_expression "(0 < (int)image->rows)" ( (binary_expression "0 < (int)image->rows" number_literal < (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier))) )) (compound_statement "{\n      local_1058 = 0;\n      do {\n        pQVar9 = GetAuthenticPixels(image,0,local_1058,image->columns,1,exception);\n        if (pQVar9 == (Quantum *)0x0) {\nLAB_0028c2d0:\n          bVar2 = false;\n          goto LAB_0028c2d7;\n        }\n        if (0 < (int)image->columns) {\n          uVar7 = uVar8 & 0x6000000;\n          uVar13 = uVar8 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                break;\n              default:\n                pPVar12 = image->channel_map;\n                pQVar9[pPVar12->offset] = 0.0;\n                if (2 < uVar5) goto LAB_0028bd09;\n                dVar14 = 0.0;\n                goto LAB_0028bc37;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                dVar14 = dVar14 * (double)DAT_0029f710;\n              }\n              pPVar12 = image->channel_map;\n              pQVar9[pPVar12->offset] = dVar14;\n              if (uVar5 < 3) goto LAB_0028bc37;\nLAB_0028bd09:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                fVar16 = (float)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                pQVar9[pPVar12[1].offset] = 0.0;\n                goto LAB_0028be31;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              pQVar9[image->channel_map[1].offset] = (double)fVar16;\nLAB_0028be31:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                goto _L310;\n              case 2:\n              case 3:\n                goto _L312;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                goto _L437;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              goto LAB_0028be75;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L429:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L429;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n              }\n              goto LAB_0028bc22;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c07a;\n            default:\n              goto _L429;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c07a:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\nLAB_0028bc22:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12->offset] = dVar14;\n            if (uVar5 < 3) {\nLAB_0028bc37:\n              pQVar9[pPVar12[1].offset] = dVar14;\n              pQVar9[pPVar12[2].offset] = dVar14;\n              if (uVar5 == 2) {\n                if (uVar13 != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }\n                }\n                if ((uVar8 & 0x20002) != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }\n                }\n                if (uVar7 != 0) {\n                  switch(uVar6) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }\n                }\n                goto _L443;\n              }\n              goto LAB_0028bc60;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L435:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L435;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              pQVar9[pPVar12[1].offset] = dVar14;\n              if (uVar7 == 0) goto _L437;\n              switch(uVar6) {\n              default:\n                goto _L437;\n              case 2:\n              case 3:\n_L312:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)ROUND(fVar16);\n                break;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)ROUND(dVar14);\n              }\n              fVar16 = (float)(uVar11 & 0xffff);\n              goto LAB_0028be75;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c4c8;\n            default:\n              fVar16 = 0.0;\n              goto LAB_0028c4eb;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c4c8:\n              uVar11 = (uint)local_103e;\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028c4eb:\n            pQVar9[pPVar12[1].offset] = (double)fVar16;\n            switch(uVar6) {\n            case 0:\n            case 1:\n_L310:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n              break;\n            default:\n_L437:\n              fVar16 = 0.0;\n              goto LAB_0028be75;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\nLAB_0028be75:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12[2].offset] = (double)fVar16;\n            if (uVar5 == 4) {\n              if (image->colorspace == CMYKColorspace) {\n                if (uVar13 == 0) {\n                  if ((uVar8 & 0x20002) == 0) {\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }\n                  else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }\n                }\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  pQVar9[pPVar12[5].offset] = (double)fVar16;\n                }\n                goto LAB_0028bc60;\n              }\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) == 0) {\n                  if (uVar7 == 0) {\n_L443:\n                    dVar14 = 0.0;\n                  }\n                  else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }\nLAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                  pPVar12 = image->channel_map;\n                }\n              }\n              else {\n                switch(uVar6) {\n                case 0:\n                case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;\n                case 2:\n                case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;\n                case 4:\n                case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;\n                case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L443;\n                case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n              goto LAB_0028c1d8;\n            }\n            if (uVar5 != 5) goto LAB_0028bc60;\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                pPVar12 = image->channel_map;\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L391;\n              default:\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  dVar14 = 0.0;\n                  goto LAB_0028cba5;\n                }\n                goto LAB_0028c951;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                pPVar12 = image->channel_map;\n                dVar14 = dVar14 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L392;\n              }\n              pPVar12 = image->channel_map;\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028c951;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L445:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L445;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028cbc9;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028cda5;\n            default:\n              dVar14 = 0.0;\n              goto LAB_0028cdc8;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028cda5:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028cdc8:\n            if (pPVar12[5].traits == UndefinedPixelTrait) {\nLAB_0028cdd5:\n              switch(uVar6) {\n              case 0:\n              case 1:\n_L409:\n                uVar11 = ReadBlobByte(image);\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                break;\n              default:\n                goto _L448;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n              }\n              dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            }\n            else {\nLAB_0028cba5:\n              pQVar9[pPVar12[5].offset] = dVar14;\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;\nLAB_0028cbc9:\n                if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }\n              }\n              else {\nLAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n            }\n            pPVar12 = image->channel_map;\nLAB_0028c1d8:\n            if (pPVar12[4].traits != UndefinedPixelTrait) {\n              pQVar9[pPVar12[4].offset] = dVar14;\n            }\nLAB_0028bc60:\n            local_106c = local_106c + 1;\n            pQVar9 = pQVar9 + image->number_channels;\n          } while (local_106c < (int)image->columns);\n        }\n        MVar4 = SyncAuthenticPixels(image,exception);\n        if (MVar4 == MagickFalse) goto LAB_0028c2d0;\n        local_1058 = local_1058 + 1;\n      } while (local_1058 < (int)image->rows);\n    }" { (expression_statement "local_1058 = 0;" (assignment_expression "local_1058 = 0" identifier = number_literal) ;) (do_statement "do {\n        pQVar9 = GetAuthenticPixels(image,0,local_1058,image->columns,1,exception);\n        if (pQVar9 == (Quantum *)0x0) {\nLAB_0028c2d0:\n          bVar2 = false;\n          goto LAB_0028c2d7;\n        }\n        if (0 < (int)image->columns) {\n          uVar7 = uVar8 & 0x6000000;\n          uVar13 = uVar8 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                break;\n              default:\n                pPVar12 = image->channel_map;\n                pQVar9[pPVar12->offset] = 0.0;\n                if (2 < uVar5) goto LAB_0028bd09;\n                dVar14 = 0.0;\n                goto LAB_0028bc37;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                dVar14 = dVar14 * (double)DAT_0029f710;\n              }\n              pPVar12 = image->channel_map;\n              pQVar9[pPVar12->offset] = dVar14;\n              if (uVar5 < 3) goto LAB_0028bc37;\nLAB_0028bd09:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                fVar16 = (float)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                pQVar9[pPVar12[1].offset] = 0.0;\n                goto LAB_0028be31;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              pQVar9[image->channel_map[1].offset] = (double)fVar16;\nLAB_0028be31:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                goto _L310;\n              case 2:\n              case 3:\n                goto _L312;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                goto _L437;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              goto LAB_0028be75;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L429:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L429;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n              }\n              goto LAB_0028bc22;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c07a;\n            default:\n              goto _L429;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c07a:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\nLAB_0028bc22:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12->offset] = dVar14;\n            if (uVar5 < 3) {\nLAB_0028bc37:\n              pQVar9[pPVar12[1].offset] = dVar14;\n              pQVar9[pPVar12[2].offset] = dVar14;\n              if (uVar5 == 2) {\n                if (uVar13 != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }\n                }\n                if ((uVar8 & 0x20002) != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }\n                }\n                if (uVar7 != 0) {\n                  switch(uVar6) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }\n                }\n                goto _L443;\n              }\n              goto LAB_0028bc60;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L435:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L435;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              pQVar9[pPVar12[1].offset] = dVar14;\n              if (uVar7 == 0) goto _L437;\n              switch(uVar6) {\n              default:\n                goto _L437;\n              case 2:\n              case 3:\n_L312:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)ROUND(fVar16);\n                break;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)ROUND(dVar14);\n              }\n              fVar16 = (float)(uVar11 & 0xffff);\n              goto LAB_0028be75;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c4c8;\n            default:\n              fVar16 = 0.0;\n              goto LAB_0028c4eb;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c4c8:\n              uVar11 = (uint)local_103e;\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028c4eb:\n            pQVar9[pPVar12[1].offset] = (double)fVar16;\n            switch(uVar6) {\n            case 0:\n            case 1:\n_L310:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n              break;\n            default:\n_L437:\n              fVar16 = 0.0;\n              goto LAB_0028be75;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\nLAB_0028be75:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12[2].offset] = (double)fVar16;\n            if (uVar5 == 4) {\n              if (image->colorspace == CMYKColorspace) {\n                if (uVar13 == 0) {\n                  if ((uVar8 & 0x20002) == 0) {\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }\n                  else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }\n                }\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  pQVar9[pPVar12[5].offset] = (double)fVar16;\n                }\n                goto LAB_0028bc60;\n              }\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) == 0) {\n                  if (uVar7 == 0) {\n_L443:\n                    dVar14 = 0.0;\n                  }\n                  else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }\nLAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                  pPVar12 = image->channel_map;\n                }\n              }\n              else {\n                switch(uVar6) {\n                case 0:\n                case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;\n                case 2:\n                case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;\n                case 4:\n                case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;\n                case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L443;\n                case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n              goto LAB_0028c1d8;\n            }\n            if (uVar5 != 5) goto LAB_0028bc60;\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                pPVar12 = image->channel_map;\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L391;\n              default:\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  dVar14 = 0.0;\n                  goto LAB_0028cba5;\n                }\n                goto LAB_0028c951;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                pPVar12 = image->channel_map;\n                dVar14 = dVar14 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L392;\n              }\n              pPVar12 = image->channel_map;\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028c951;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L445:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L445;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028cbc9;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028cda5;\n            default:\n              dVar14 = 0.0;\n              goto LAB_0028cdc8;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028cda5:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028cdc8:\n            if (pPVar12[5].traits == UndefinedPixelTrait) {\nLAB_0028cdd5:\n              switch(uVar6) {\n              case 0:\n              case 1:\n_L409:\n                uVar11 = ReadBlobByte(image);\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                break;\n              default:\n                goto _L448;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n              }\n              dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            }\n            else {\nLAB_0028cba5:\n              pQVar9[pPVar12[5].offset] = dVar14;\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;\nLAB_0028cbc9:\n                if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }\n              }\n              else {\nLAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n            }\n            pPVar12 = image->channel_map;\nLAB_0028c1d8:\n            if (pPVar12[4].traits != UndefinedPixelTrait) {\n              pQVar9[pPVar12[4].offset] = dVar14;\n            }\nLAB_0028bc60:\n            local_106c = local_106c + 1;\n            pQVar9 = pQVar9 + image->number_channels;\n          } while (local_106c < (int)image->columns);\n        }\n        MVar4 = SyncAuthenticPixels(image,exception);\n        if (MVar4 == MagickFalse) goto LAB_0028c2d0;\n        local_1058 = local_1058 + 1;\n      } while (local_1058 < (int)image->rows);" do (compound_statement "{\n        pQVar9 = GetAuthenticPixels(image,0,local_1058,image->columns,1,exception);\n        if (pQVar9 == (Quantum *)0x0) {\nLAB_0028c2d0:\n          bVar2 = false;\n          goto LAB_0028c2d7;\n        }\n        if (0 < (int)image->columns) {\n          uVar7 = uVar8 & 0x6000000;\n          uVar13 = uVar8 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                break;\n              default:\n                pPVar12 = image->channel_map;\n                pQVar9[pPVar12->offset] = 0.0;\n                if (2 < uVar5) goto LAB_0028bd09;\n                dVar14 = 0.0;\n                goto LAB_0028bc37;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                dVar14 = dVar14 * (double)DAT_0029f710;\n              }\n              pPVar12 = image->channel_map;\n              pQVar9[pPVar12->offset] = dVar14;\n              if (uVar5 < 3) goto LAB_0028bc37;\nLAB_0028bd09:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                fVar16 = (float)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                pQVar9[pPVar12[1].offset] = 0.0;\n                goto LAB_0028be31;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              pQVar9[image->channel_map[1].offset] = (double)fVar16;\nLAB_0028be31:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                goto _L310;\n              case 2:\n              case 3:\n                goto _L312;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                goto _L437;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              goto LAB_0028be75;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L429:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L429;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n              }\n              goto LAB_0028bc22;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c07a;\n            default:\n              goto _L429;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c07a:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\nLAB_0028bc22:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12->offset] = dVar14;\n            if (uVar5 < 3) {\nLAB_0028bc37:\n              pQVar9[pPVar12[1].offset] = dVar14;\n              pQVar9[pPVar12[2].offset] = dVar14;\n              if (uVar5 == 2) {\n                if (uVar13 != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }\n                }\n                if ((uVar8 & 0x20002) != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }\n                }\n                if (uVar7 != 0) {\n                  switch(uVar6) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }\n                }\n                goto _L443;\n              }\n              goto LAB_0028bc60;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L435:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L435;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              pQVar9[pPVar12[1].offset] = dVar14;\n              if (uVar7 == 0) goto _L437;\n              switch(uVar6) {\n              default:\n                goto _L437;\n              case 2:\n              case 3:\n_L312:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)ROUND(fVar16);\n                break;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)ROUND(dVar14);\n              }\n              fVar16 = (float)(uVar11 & 0xffff);\n              goto LAB_0028be75;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c4c8;\n            default:\n              fVar16 = 0.0;\n              goto LAB_0028c4eb;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c4c8:\n              uVar11 = (uint)local_103e;\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028c4eb:\n            pQVar9[pPVar12[1].offset] = (double)fVar16;\n            switch(uVar6) {\n            case 0:\n            case 1:\n_L310:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n              break;\n            default:\n_L437:\n              fVar16 = 0.0;\n              goto LAB_0028be75;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\nLAB_0028be75:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12[2].offset] = (double)fVar16;\n            if (uVar5 == 4) {\n              if (image->colorspace == CMYKColorspace) {\n                if (uVar13 == 0) {\n                  if ((uVar8 & 0x20002) == 0) {\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }\n                  else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }\n                }\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  pQVar9[pPVar12[5].offset] = (double)fVar16;\n                }\n                goto LAB_0028bc60;\n              }\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) == 0) {\n                  if (uVar7 == 0) {\n_L443:\n                    dVar14 = 0.0;\n                  }\n                  else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }\nLAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                  pPVar12 = image->channel_map;\n                }\n              }\n              else {\n                switch(uVar6) {\n                case 0:\n                case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;\n                case 2:\n                case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;\n                case 4:\n                case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;\n                case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L443;\n                case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n              goto LAB_0028c1d8;\n            }\n            if (uVar5 != 5) goto LAB_0028bc60;\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                pPVar12 = image->channel_map;\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L391;\n              default:\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  dVar14 = 0.0;\n                  goto LAB_0028cba5;\n                }\n                goto LAB_0028c951;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                pPVar12 = image->channel_map;\n                dVar14 = dVar14 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L392;\n              }\n              pPVar12 = image->channel_map;\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028c951;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L445:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L445;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028cbc9;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028cda5;\n            default:\n              dVar14 = 0.0;\n              goto LAB_0028cdc8;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028cda5:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028cdc8:\n            if (pPVar12[5].traits == UndefinedPixelTrait) {\nLAB_0028cdd5:\n              switch(uVar6) {\n              case 0:\n              case 1:\n_L409:\n                uVar11 = ReadBlobByte(image);\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                break;\n              default:\n                goto _L448;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n              }\n              dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            }\n            else {\nLAB_0028cba5:\n              pQVar9[pPVar12[5].offset] = dVar14;\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;\nLAB_0028cbc9:\n                if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }\n              }\n              else {\nLAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n            }\n            pPVar12 = image->channel_map;\nLAB_0028c1d8:\n            if (pPVar12[4].traits != UndefinedPixelTrait) {\n              pQVar9[pPVar12[4].offset] = dVar14;\n            }\nLAB_0028bc60:\n            local_106c = local_106c + 1;\n            pQVar9 = pQVar9 + image->number_channels;\n          } while (local_106c < (int)image->columns);\n        }\n        MVar4 = SyncAuthenticPixels(image,exception);\n        if (MVar4 == MagickFalse) goto LAB_0028c2d0;\n        local_1058 = local_1058 + 1;\n      }" { (expression_statement "pQVar9 = GetAuthenticPixels(image,0,local_1058,image->columns,1,exception);" (assignment_expression "pQVar9 = GetAuthenticPixels(image,0,local_1058,image->columns,1,exception)" identifier = (call_expression "GetAuthenticPixels(image,0,local_1058,image->columns,1,exception)" identifier (argument_list "(image,0,local_1058,image->columns,1,exception)" ( identifier , number_literal , identifier , (field_expression "image->columns" identifier -> field_identifier) , number_literal , identifier )))) ;) (if_statement "if (pQVar9 == (Quantum *)0x0) {\nLAB_0028c2d0:\n          bVar2 = false;\n          goto LAB_0028c2d7;\n        }" if (parenthesized_expression "(pQVar9 == (Quantum *)0x0)" ( (binary_expression "pQVar9 == (Quantum *)0x0" identifier == (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0028c2d0:\n          bVar2 = false;\n          goto LAB_0028c2d7;\n        }" { (labeled_statement "LAB_0028c2d0:\n          bVar2 = false;" statement_identifier : (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;)) (goto_statement "goto LAB_0028c2d7;" goto statement_identifier ;) })) (if_statement "if (0 < (int)image->columns) {\n          uVar7 = uVar8 & 0x6000000;\n          uVar13 = uVar8 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                break;\n              default:\n                pPVar12 = image->channel_map;\n                pQVar9[pPVar12->offset] = 0.0;\n                if (2 < uVar5) goto LAB_0028bd09;\n                dVar14 = 0.0;\n                goto LAB_0028bc37;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                dVar14 = dVar14 * (double)DAT_0029f710;\n              }\n              pPVar12 = image->channel_map;\n              pQVar9[pPVar12->offset] = dVar14;\n              if (uVar5 < 3) goto LAB_0028bc37;\nLAB_0028bd09:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                fVar16 = (float)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                pQVar9[pPVar12[1].offset] = 0.0;\n                goto LAB_0028be31;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              pQVar9[image->channel_map[1].offset] = (double)fVar16;\nLAB_0028be31:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                goto _L310;\n              case 2:\n              case 3:\n                goto _L312;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                goto _L437;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              goto LAB_0028be75;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L429:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L429;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n              }\n              goto LAB_0028bc22;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c07a;\n            default:\n              goto _L429;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c07a:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\nLAB_0028bc22:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12->offset] = dVar14;\n            if (uVar5 < 3) {\nLAB_0028bc37:\n              pQVar9[pPVar12[1].offset] = dVar14;\n              pQVar9[pPVar12[2].offset] = dVar14;\n              if (uVar5 == 2) {\n                if (uVar13 != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }\n                }\n                if ((uVar8 & 0x20002) != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }\n                }\n                if (uVar7 != 0) {\n                  switch(uVar6) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }\n                }\n                goto _L443;\n              }\n              goto LAB_0028bc60;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L435:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L435;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              pQVar9[pPVar12[1].offset] = dVar14;\n              if (uVar7 == 0) goto _L437;\n              switch(uVar6) {\n              default:\n                goto _L437;\n              case 2:\n              case 3:\n_L312:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)ROUND(fVar16);\n                break;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)ROUND(dVar14);\n              }\n              fVar16 = (float)(uVar11 & 0xffff);\n              goto LAB_0028be75;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c4c8;\n            default:\n              fVar16 = 0.0;\n              goto LAB_0028c4eb;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c4c8:\n              uVar11 = (uint)local_103e;\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028c4eb:\n            pQVar9[pPVar12[1].offset] = (double)fVar16;\n            switch(uVar6) {\n            case 0:\n            case 1:\n_L310:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n              break;\n            default:\n_L437:\n              fVar16 = 0.0;\n              goto LAB_0028be75;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\nLAB_0028be75:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12[2].offset] = (double)fVar16;\n            if (uVar5 == 4) {\n              if (image->colorspace == CMYKColorspace) {\n                if (uVar13 == 0) {\n                  if ((uVar8 & 0x20002) == 0) {\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }\n                  else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }\n                }\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  pQVar9[pPVar12[5].offset] = (double)fVar16;\n                }\n                goto LAB_0028bc60;\n              }\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) == 0) {\n                  if (uVar7 == 0) {\n_L443:\n                    dVar14 = 0.0;\n                  }\n                  else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }\nLAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                  pPVar12 = image->channel_map;\n                }\n              }\n              else {\n                switch(uVar6) {\n                case 0:\n                case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;\n                case 2:\n                case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;\n                case 4:\n                case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;\n                case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L443;\n                case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n              goto LAB_0028c1d8;\n            }\n            if (uVar5 != 5) goto LAB_0028bc60;\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                pPVar12 = image->channel_map;\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L391;\n              default:\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  dVar14 = 0.0;\n                  goto LAB_0028cba5;\n                }\n                goto LAB_0028c951;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                pPVar12 = image->channel_map;\n                dVar14 = dVar14 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L392;\n              }\n              pPVar12 = image->channel_map;\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028c951;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L445:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L445;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028cbc9;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028cda5;\n            default:\n              dVar14 = 0.0;\n              goto LAB_0028cdc8;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028cda5:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028cdc8:\n            if (pPVar12[5].traits == UndefinedPixelTrait) {\nLAB_0028cdd5:\n              switch(uVar6) {\n              case 0:\n              case 1:\n_L409:\n                uVar11 = ReadBlobByte(image);\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                break;\n              default:\n                goto _L448;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n              }\n              dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            }\n            else {\nLAB_0028cba5:\n              pQVar9[pPVar12[5].offset] = dVar14;\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;\nLAB_0028cbc9:\n                if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }\n              }\n              else {\nLAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n            }\n            pPVar12 = image->channel_map;\nLAB_0028c1d8:\n            if (pPVar12[4].traits != UndefinedPixelTrait) {\n              pQVar9[pPVar12[4].offset] = dVar14;\n            }\nLAB_0028bc60:\n            local_106c = local_106c + 1;\n            pQVar9 = pQVar9 + image->number_channels;\n          } while (local_106c < (int)image->columns);\n        }" if (parenthesized_expression "(0 < (int)image->columns)" ( (binary_expression "0 < (int)image->columns" number_literal < (cast_expression "(int)image->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image->columns" identifier -> field_identifier))) )) (compound_statement "{\n          uVar7 = uVar8 & 0x6000000;\n          uVar13 = uVar8 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                break;\n              default:\n                pPVar12 = image->channel_map;\n                pQVar9[pPVar12->offset] = 0.0;\n                if (2 < uVar5) goto LAB_0028bd09;\n                dVar14 = 0.0;\n                goto LAB_0028bc37;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                dVar14 = dVar14 * (double)DAT_0029f710;\n              }\n              pPVar12 = image->channel_map;\n              pQVar9[pPVar12->offset] = dVar14;\n              if (uVar5 < 3) goto LAB_0028bc37;\nLAB_0028bd09:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                fVar16 = (float)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                pQVar9[pPVar12[1].offset] = 0.0;\n                goto LAB_0028be31;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              pQVar9[image->channel_map[1].offset] = (double)fVar16;\nLAB_0028be31:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                goto _L310;\n              case 2:\n              case 3:\n                goto _L312;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                goto _L437;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              goto LAB_0028be75;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L429:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L429;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n              }\n              goto LAB_0028bc22;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c07a;\n            default:\n              goto _L429;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c07a:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\nLAB_0028bc22:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12->offset] = dVar14;\n            if (uVar5 < 3) {\nLAB_0028bc37:\n              pQVar9[pPVar12[1].offset] = dVar14;\n              pQVar9[pPVar12[2].offset] = dVar14;\n              if (uVar5 == 2) {\n                if (uVar13 != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }\n                }\n                if ((uVar8 & 0x20002) != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }\n                }\n                if (uVar7 != 0) {\n                  switch(uVar6) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }\n                }\n                goto _L443;\n              }\n              goto LAB_0028bc60;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L435:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L435;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              pQVar9[pPVar12[1].offset] = dVar14;\n              if (uVar7 == 0) goto _L437;\n              switch(uVar6) {\n              default:\n                goto _L437;\n              case 2:\n              case 3:\n_L312:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)ROUND(fVar16);\n                break;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)ROUND(dVar14);\n              }\n              fVar16 = (float)(uVar11 & 0xffff);\n              goto LAB_0028be75;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c4c8;\n            default:\n              fVar16 = 0.0;\n              goto LAB_0028c4eb;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c4c8:\n              uVar11 = (uint)local_103e;\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028c4eb:\n            pQVar9[pPVar12[1].offset] = (double)fVar16;\n            switch(uVar6) {\n            case 0:\n            case 1:\n_L310:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n              break;\n            default:\n_L437:\n              fVar16 = 0.0;\n              goto LAB_0028be75;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\nLAB_0028be75:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12[2].offset] = (double)fVar16;\n            if (uVar5 == 4) {\n              if (image->colorspace == CMYKColorspace) {\n                if (uVar13 == 0) {\n                  if ((uVar8 & 0x20002) == 0) {\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }\n                  else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }\n                }\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  pQVar9[pPVar12[5].offset] = (double)fVar16;\n                }\n                goto LAB_0028bc60;\n              }\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) == 0) {\n                  if (uVar7 == 0) {\n_L443:\n                    dVar14 = 0.0;\n                  }\n                  else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }\nLAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                  pPVar12 = image->channel_map;\n                }\n              }\n              else {\n                switch(uVar6) {\n                case 0:\n                case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;\n                case 2:\n                case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;\n                case 4:\n                case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;\n                case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L443;\n                case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n              goto LAB_0028c1d8;\n            }\n            if (uVar5 != 5) goto LAB_0028bc60;\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                pPVar12 = image->channel_map;\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L391;\n              default:\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  dVar14 = 0.0;\n                  goto LAB_0028cba5;\n                }\n                goto LAB_0028c951;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                pPVar12 = image->channel_map;\n                dVar14 = dVar14 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L392;\n              }\n              pPVar12 = image->channel_map;\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028c951;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L445:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L445;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028cbc9;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028cda5;\n            default:\n              dVar14 = 0.0;\n              goto LAB_0028cdc8;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028cda5:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028cdc8:\n            if (pPVar12[5].traits == UndefinedPixelTrait) {\nLAB_0028cdd5:\n              switch(uVar6) {\n              case 0:\n              case 1:\n_L409:\n                uVar11 = ReadBlobByte(image);\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                break;\n              default:\n                goto _L448;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n              }\n              dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            }\n            else {\nLAB_0028cba5:\n              pQVar9[pPVar12[5].offset] = dVar14;\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;\nLAB_0028cbc9:\n                if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }\n              }\n              else {\nLAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n            }\n            pPVar12 = image->channel_map;\nLAB_0028c1d8:\n            if (pPVar12[4].traits != UndefinedPixelTrait) {\n              pQVar9[pPVar12[4].offset] = dVar14;\n            }\nLAB_0028bc60:\n            local_106c = local_106c + 1;\n            pQVar9 = pQVar9 + image->number_channels;\n          } while (local_106c < (int)image->columns);\n        }" { (expression_statement "uVar7 = uVar8 & 0x6000000;" (assignment_expression "uVar7 = uVar8 & 0x6000000" identifier = (binary_expression "uVar8 & 0x6000000" identifier & number_literal)) ;) (expression_statement "uVar13 = uVar8 & 0x408000;" (assignment_expression "uVar13 = uVar8 & 0x408000" identifier = (binary_expression "uVar8 & 0x408000" identifier & number_literal)) ;) (expression_statement "local_106c = 0;" (assignment_expression "local_106c = 0" identifier = number_literal) ;) (do_statement "do {\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                break;\n              default:\n                pPVar12 = image->channel_map;\n                pQVar9[pPVar12->offset] = 0.0;\n                if (2 < uVar5) goto LAB_0028bd09;\n                dVar14 = 0.0;\n                goto LAB_0028bc37;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                dVar14 = dVar14 * (double)DAT_0029f710;\n              }\n              pPVar12 = image->channel_map;\n              pQVar9[pPVar12->offset] = dVar14;\n              if (uVar5 < 3) goto LAB_0028bc37;\nLAB_0028bd09:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                fVar16 = (float)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                pQVar9[pPVar12[1].offset] = 0.0;\n                goto LAB_0028be31;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              pQVar9[image->channel_map[1].offset] = (double)fVar16;\nLAB_0028be31:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                goto _L310;\n              case 2:\n              case 3:\n                goto _L312;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                goto _L437;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              goto LAB_0028be75;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L429:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L429;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n              }\n              goto LAB_0028bc22;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c07a;\n            default:\n              goto _L429;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c07a:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\nLAB_0028bc22:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12->offset] = dVar14;\n            if (uVar5 < 3) {\nLAB_0028bc37:\n              pQVar9[pPVar12[1].offset] = dVar14;\n              pQVar9[pPVar12[2].offset] = dVar14;\n              if (uVar5 == 2) {\n                if (uVar13 != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }\n                }\n                if ((uVar8 & 0x20002) != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }\n                }\n                if (uVar7 != 0) {\n                  switch(uVar6) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }\n                }\n                goto _L443;\n              }\n              goto LAB_0028bc60;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L435:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L435;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              pQVar9[pPVar12[1].offset] = dVar14;\n              if (uVar7 == 0) goto _L437;\n              switch(uVar6) {\n              default:\n                goto _L437;\n              case 2:\n              case 3:\n_L312:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)ROUND(fVar16);\n                break;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)ROUND(dVar14);\n              }\n              fVar16 = (float)(uVar11 & 0xffff);\n              goto LAB_0028be75;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c4c8;\n            default:\n              fVar16 = 0.0;\n              goto LAB_0028c4eb;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c4c8:\n              uVar11 = (uint)local_103e;\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028c4eb:\n            pQVar9[pPVar12[1].offset] = (double)fVar16;\n            switch(uVar6) {\n            case 0:\n            case 1:\n_L310:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n              break;\n            default:\n_L437:\n              fVar16 = 0.0;\n              goto LAB_0028be75;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\nLAB_0028be75:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12[2].offset] = (double)fVar16;\n            if (uVar5 == 4) {\n              if (image->colorspace == CMYKColorspace) {\n                if (uVar13 == 0) {\n                  if ((uVar8 & 0x20002) == 0) {\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }\n                  else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }\n                }\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  pQVar9[pPVar12[5].offset] = (double)fVar16;\n                }\n                goto LAB_0028bc60;\n              }\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) == 0) {\n                  if (uVar7 == 0) {\n_L443:\n                    dVar14 = 0.0;\n                  }\n                  else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }\nLAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                  pPVar12 = image->channel_map;\n                }\n              }\n              else {\n                switch(uVar6) {\n                case 0:\n                case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;\n                case 2:\n                case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;\n                case 4:\n                case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;\n                case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L443;\n                case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n              goto LAB_0028c1d8;\n            }\n            if (uVar5 != 5) goto LAB_0028bc60;\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                pPVar12 = image->channel_map;\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L391;\n              default:\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  dVar14 = 0.0;\n                  goto LAB_0028cba5;\n                }\n                goto LAB_0028c951;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                pPVar12 = image->channel_map;\n                dVar14 = dVar14 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L392;\n              }\n              pPVar12 = image->channel_map;\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028c951;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L445:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L445;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028cbc9;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028cda5;\n            default:\n              dVar14 = 0.0;\n              goto LAB_0028cdc8;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028cda5:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028cdc8:\n            if (pPVar12[5].traits == UndefinedPixelTrait) {\nLAB_0028cdd5:\n              switch(uVar6) {\n              case 0:\n              case 1:\n_L409:\n                uVar11 = ReadBlobByte(image);\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                break;\n              default:\n                goto _L448;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n              }\n              dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            }\n            else {\nLAB_0028cba5:\n              pQVar9[pPVar12[5].offset] = dVar14;\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;\nLAB_0028cbc9:\n                if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }\n              }\n              else {\nLAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n            }\n            pPVar12 = image->channel_map;\nLAB_0028c1d8:\n            if (pPVar12[4].traits != UndefinedPixelTrait) {\n              pQVar9[pPVar12[4].offset] = dVar14;\n            }\nLAB_0028bc60:\n            local_106c = local_106c + 1;\n            pQVar9 = pQVar9 + image->number_channels;\n          } while (local_106c < (int)image->columns);" do (compound_statement "{\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                break;\n              default:\n                pPVar12 = image->channel_map;\n                pQVar9[pPVar12->offset] = 0.0;\n                if (2 < uVar5) goto LAB_0028bd09;\n                dVar14 = 0.0;\n                goto LAB_0028bc37;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                dVar14 = dVar14 * (double)DAT_0029f710;\n              }\n              pPVar12 = image->channel_map;\n              pQVar9[pPVar12->offset] = dVar14;\n              if (uVar5 < 3) goto LAB_0028bc37;\nLAB_0028bd09:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                fVar16 = (float)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                pQVar9[pPVar12[1].offset] = 0.0;\n                goto LAB_0028be31;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              pQVar9[image->channel_map[1].offset] = (double)fVar16;\nLAB_0028be31:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                goto _L310;\n              case 2:\n              case 3:\n                goto _L312;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                goto _L437;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              goto LAB_0028be75;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L429:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L429;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n              }\n              goto LAB_0028bc22;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c07a;\n            default:\n              goto _L429;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c07a:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\nLAB_0028bc22:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12->offset] = dVar14;\n            if (uVar5 < 3) {\nLAB_0028bc37:\n              pQVar9[pPVar12[1].offset] = dVar14;\n              pQVar9[pPVar12[2].offset] = dVar14;\n              if (uVar5 == 2) {\n                if (uVar13 != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }\n                }\n                if ((uVar8 & 0x20002) != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }\n                }\n                if (uVar7 != 0) {\n                  switch(uVar6) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }\n                }\n                goto _L443;\n              }\n              goto LAB_0028bc60;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L435:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L435;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              pQVar9[pPVar12[1].offset] = dVar14;\n              if (uVar7 == 0) goto _L437;\n              switch(uVar6) {\n              default:\n                goto _L437;\n              case 2:\n              case 3:\n_L312:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)ROUND(fVar16);\n                break;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)ROUND(dVar14);\n              }\n              fVar16 = (float)(uVar11 & 0xffff);\n              goto LAB_0028be75;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c4c8;\n            default:\n              fVar16 = 0.0;\n              goto LAB_0028c4eb;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c4c8:\n              uVar11 = (uint)local_103e;\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028c4eb:\n            pQVar9[pPVar12[1].offset] = (double)fVar16;\n            switch(uVar6) {\n            case 0:\n            case 1:\n_L310:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n              break;\n            default:\n_L437:\n              fVar16 = 0.0;\n              goto LAB_0028be75;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n            }\n            fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\nLAB_0028be75:\n            pPVar12 = image->channel_map;\n            pQVar9[pPVar12[2].offset] = (double)fVar16;\n            if (uVar5 == 4) {\n              if (image->colorspace == CMYKColorspace) {\n                if (uVar13 == 0) {\n                  if ((uVar8 & 0x20002) == 0) {\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }\n                  else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }\n                }\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  pQVar9[pPVar12[5].offset] = (double)fVar16;\n                }\n                goto LAB_0028bc60;\n              }\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) == 0) {\n                  if (uVar7 == 0) {\n_L443:\n                    dVar14 = 0.0;\n                  }\n                  else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }\nLAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                  pPVar12 = image->channel_map;\n                }\n              }\n              else {\n                switch(uVar6) {\n                case 0:\n                case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;\n                case 2:\n                case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;\n                case 4:\n                case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;\n                case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L443;\n                case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n              goto LAB_0028c1d8;\n            }\n            if (uVar5 != 5) goto LAB_0028bc60;\n            if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                pPVar12 = image->channel_map;\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L391;\n              default:\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  dVar14 = 0.0;\n                  goto LAB_0028cba5;\n                }\n                goto LAB_0028c951;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                pPVar12 = image->channel_map;\n                dVar14 = dVar14 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L392;\n              }\n              pPVar12 = image->channel_map;\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028c951;\n            }\n            if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L445:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L445;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028cbc9;\n            }\n            switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028cda5;\n            default:\n              dVar14 = 0.0;\n              goto LAB_0028cdc8;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028cda5:\n              uVar11 = (uint)local_103e;\n            }\n            dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            pPVar12 = image->channel_map;\nLAB_0028cdc8:\n            if (pPVar12[5].traits == UndefinedPixelTrait) {\nLAB_0028cdd5:\n              switch(uVar6) {\n              case 0:\n              case 1:\n_L409:\n                uVar11 = ReadBlobByte(image);\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                break;\n              default:\n                goto _L448;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n              }\n              dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            }\n            else {\nLAB_0028cba5:\n              pQVar9[pPVar12[5].offset] = dVar14;\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;\nLAB_0028cbc9:\n                if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }\n              }\n              else {\nLAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n            }\n            pPVar12 = image->channel_map;\nLAB_0028c1d8:\n            if (pPVar12[4].traits != UndefinedPixelTrait) {\n              pQVar9[pPVar12[4].offset] = dVar14;\n            }\nLAB_0028bc60:\n            local_106c = local_106c + 1;\n            pQVar9 = pQVar9 + image->number_channels;\n          }" { (if_statement "if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                break;\n              default:\n                pPVar12 = image->channel_map;\n                pQVar9[pPVar12->offset] = 0.0;\n                if (2 < uVar5) goto LAB_0028bd09;\n                dVar14 = 0.0;\n                goto LAB_0028bc37;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                dVar14 = dVar14 * (double)DAT_0029f710;\n              }\n              pPVar12 = image->channel_map;\n              pQVar9[pPVar12->offset] = dVar14;\n              if (uVar5 < 3) goto LAB_0028bc37;\nLAB_0028bd09:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                fVar16 = (float)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                pQVar9[pPVar12[1].offset] = 0.0;\n                goto LAB_0028be31;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              pQVar9[image->channel_map[1].offset] = (double)fVar16;\nLAB_0028be31:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                goto _L310;\n              case 2:\n              case 3:\n                goto _L312;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                goto _L437;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              goto LAB_0028be75;\n            }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                break;\n              default:\n                pPVar12 = image->channel_map;\n                pQVar9[pPVar12->offset] = 0.0;\n                if (2 < uVar5) goto LAB_0028bd09;\n                dVar14 = 0.0;\n                goto LAB_0028bc37;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                dVar14 = dVar14 * (double)DAT_0029f710;\n              }\n              pPVar12 = image->channel_map;\n              pQVar9[pPVar12->offset] = dVar14;\n              if (uVar5 < 3) goto LAB_0028bc37;\nLAB_0028bd09:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                fVar16 = (float)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                pQVar9[pPVar12[1].offset] = 0.0;\n                goto LAB_0028be31;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              pQVar9[image->channel_map[1].offset] = (double)fVar16;\nLAB_0028be31:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                goto _L310;\n              case 2:\n              case 3:\n                goto _L312;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                goto _L437;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }\n              goto LAB_0028be75;\n            }" { (switch_statement "switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                break;\n              default:\n                pPVar12 = image->channel_map;\n                pQVar9[pPVar12->offset] = 0.0;\n                if (2 < uVar5) goto LAB_0028bd09;\n                dVar14 = 0.0;\n                goto LAB_0028bc37;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                dVar14 = dVar14 * (double)DAT_0029f710;\n              }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                break;\n              default:\n                pPVar12 = image->channel_map;\n                pQVar9[pPVar12->offset] = 0.0;\n                if (2 < uVar5) goto LAB_0028bd09;\n                dVar14 = 0.0;\n                goto LAB_0028bc37;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                dVar14 = dVar14 * (double)DAT_0029f710;\n              }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;" case number_literal : (expression_statement "uVar11 = ReadBlobByte(image);" (assignment_expression "uVar11 = ReadBlobByte(image)" identifier = (call_expression "ReadBlobByte(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;" (assignment_expression "dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0" identifier = (binary_expression "(double)(uVar11 & 0xff) * (double)DAT_002a7ff0" (cast_expression "(double)(uVar11 & 0xff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uVar11 & 0xff)" ( (binary_expression "uVar11 & 0xff" identifier & number_literal) ))) * (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;" case number_literal : (expression_statement "uVar3 = ReadBlobShort(image);" (assignment_expression "uVar3 = ReadBlobShort(image)" identifier = (call_expression "ReadBlobShort(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "dVar14 = (double)uVar3;" (assignment_expression "dVar14 = (double)uVar3" identifier = (cast_expression "(double)uVar3" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;" case number_literal : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "dVar14 = (double)uVar11 / (double)DAT_002a7fec;" (assignment_expression "dVar14 = (double)uVar11 / (double)DAT_002a7fec" identifier = (binary_expression "(double)uVar11 / (double)DAT_002a7fec" (cast_expression "(double)uVar11" ( (type_descriptor "double" primitive_type) ) identifier) / (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                fVar16 = ReadBlobFloat(image);\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                break;" case number_literal : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "dVar14 = (double)fVar16 * (double)DAT_0029f710;" (assignment_expression "dVar14 = (double)fVar16 * (double)DAT_0029f710" identifier = (binary_expression "(double)fVar16 * (double)DAT_0029f710" (cast_expression "(double)fVar16" ( (type_descriptor "double" primitive_type) ) identifier) * (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                pPVar12 = image->channel_map;\n                pQVar9[pPVar12->offset] = 0.0;\n                if (2 < uVar5) goto LAB_0028bd09;\n                dVar14 = 0.0;\n                goto LAB_0028bc37;" default : (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "pQVar9[pPVar12->offset] = 0.0;" (assignment_expression "pQVar9[pPVar12->offset] = 0.0" (subscript_expression "pQVar9[pPVar12->offset]" identifier [ (field_expression "pPVar12->offset" identifier -> field_identifier) ]) = number_literal) ;) (if_statement "if (2 < uVar5) goto LAB_0028bd09;" if (parenthesized_expression "(2 < uVar5)" ( (binary_expression "2 < uVar5" number_literal < identifier) )) (goto_statement "goto LAB_0028bd09;" goto statement_identifier ;)) (expression_statement "dVar14 = 0.0;" (assignment_expression "dVar14 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_0028bc37;" goto statement_identifier ;)) (case_statement "case 8:\n                dVar14 = ReadBlobDouble(image);\n                dVar14 = dVar14 * (double)DAT_0029f710;" case number_literal : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "dVar14 = dVar14 * (double)DAT_0029f710;" (assignment_expression "dVar14 = dVar14 * (double)DAT_0029f710" identifier = (binary_expression "dVar14 * (double)DAT_0029f710" identifier * (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;)) })) (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "pQVar9[pPVar12->offset] = dVar14;" (assignment_expression "pQVar9[pPVar12->offset] = dVar14" (subscript_expression "pQVar9[pPVar12->offset]" identifier [ (field_expression "pPVar12->offset" identifier -> field_identifier) ]) = identifier) ;) (if_statement "if (uVar5 < 3) goto LAB_0028bc37;" if (parenthesized_expression "(uVar5 < 3)" ( (binary_expression "uVar5 < 3" identifier < number_literal) )) (goto_statement "goto LAB_0028bc37;" goto statement_identifier ;)) (labeled_statement "LAB_0028bd09:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                fVar16 = (float)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                pQVar9[pPVar12[1].offset] = 0.0;\n                goto LAB_0028be31;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }" statement_identifier : (switch_statement "switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                fVar16 = (float)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                pQVar9[pPVar12[1].offset] = 0.0;\n                goto LAB_0028be31;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                fVar16 = (float)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                pQVar9[pPVar12[1].offset] = 0.0;\n                goto LAB_0028be31;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                uVar11 = ReadBlobByte(image);\n                fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                break;" case number_literal : (expression_statement "uVar11 = ReadBlobByte(image);" (assignment_expression "uVar11 = ReadBlobByte(image)" identifier = (call_expression "ReadBlobByte(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;" (assignment_expression "fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0" identifier = (binary_expression "(float)(uVar11 & 0xff) * DAT_002a7ff0" (cast_expression "(float)(uVar11 & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar11 & 0xff)" ( (binary_expression "uVar11 & 0xff" identifier & number_literal) ))) * identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                uVar3 = ReadBlobShort(image);\n                fVar16 = (float)uVar3;\n                break;" case number_literal : (expression_statement "uVar3 = ReadBlobShort(image);" (assignment_expression "uVar3 = ReadBlobShort(image)" identifier = (call_expression "ReadBlobShort(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "fVar16 = (float)uVar3;" (assignment_expression "fVar16 = (float)uVar3" identifier = (cast_expression "(float)uVar3" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;" case number_literal : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "fVar16 = (float)uVar11 / DAT_002a7fec;" (assignment_expression "fVar16 = (float)uVar11 / DAT_002a7fec" identifier = (binary_expression "(float)uVar11 / DAT_002a7fec" (cast_expression "(float)uVar11" ( (type_descriptor "float" primitive_type) ) identifier) / identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;" case number_literal : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "fVar16 = fVar16 * DAT_0029f710;" (assignment_expression "fVar16 = fVar16 * DAT_0029f710" identifier = (binary_expression "fVar16 * DAT_0029f710" identifier * identifier)) ;) (break_statement "break;" break ;)) (case_statement "default:\n                pQVar9[pPVar12[1].offset] = 0.0;\n                goto LAB_0028be31;" default : (expression_statement "pQVar9[pPVar12[1].offset] = 0.0;" (assignment_expression "pQVar9[pPVar12[1].offset] = 0.0" (subscript_expression "pQVar9[pPVar12[1].offset]" identifier [ (field_expression "pPVar12[1].offset" (subscript_expression "pPVar12[1]" identifier [ number_literal ]) . field_identifier) ]) = number_literal) ;) (goto_statement "goto LAB_0028be31;" goto statement_identifier ;)) (case_statement "case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;" case number_literal : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "fVar16 = (float)dVar14 * DAT_0029f710;" (assignment_expression "fVar16 = (float)dVar14 * DAT_0029f710" identifier = (binary_expression "(float)dVar14 * DAT_0029f710" (cast_expression "(float)dVar14" ( (type_descriptor "float" primitive_type) ) identifier) * identifier)) ;)) }))) (expression_statement "pQVar9[image->channel_map[1].offset] = (double)fVar16;" (assignment_expression "pQVar9[image->channel_map[1].offset] = (double)fVar16" (subscript_expression "pQVar9[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) ]) = (cast_expression "(double)fVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (labeled_statement "LAB_0028be31:\n              switch(uVar6) {\n              case 0:\n              case 1:\n                goto _L310;\n              case 2:\n              case 3:\n                goto _L312;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                goto _L437;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }" statement_identifier : (switch_statement "switch(uVar6) {\n              case 0:\n              case 1:\n                goto _L310;\n              case 2:\n              case 3:\n                goto _L312;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                goto _L437;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n              case 0:\n              case 1:\n                goto _L310;\n              case 2:\n              case 3:\n                goto _L312;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;\n              default:\n                goto _L437;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;\n              }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                goto _L310;" case number_literal : (goto_statement "goto _L310;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                goto _L312;" case number_literal : (goto_statement "goto _L312;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uVar11 = ReadBlobLong(image);\n                fVar16 = (float)uVar11 / DAT_002a7fec;\n                break;" case number_literal : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "fVar16 = (float)uVar11 / DAT_002a7fec;" (assignment_expression "fVar16 = (float)uVar11 / DAT_002a7fec" identifier = (binary_expression "(float)uVar11 / DAT_002a7fec" (cast_expression "(float)uVar11" ( (type_descriptor "float" primitive_type) ) identifier) / identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                fVar16 = ReadBlobFloat(image);\n                fVar16 = fVar16 * DAT_0029f710;\n                break;" case number_literal : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "fVar16 = fVar16 * DAT_0029f710;" (assignment_expression "fVar16 = fVar16 * DAT_0029f710" identifier = (binary_expression "fVar16 * DAT_0029f710" identifier * identifier)) ;) (break_statement "break;" break ;)) (case_statement "default:\n                goto _L437;" default : (goto_statement "goto _L437;" goto statement_identifier ;)) (case_statement "case 8:\n                dVar14 = ReadBlobDouble(image);\n                fVar16 = (float)dVar14 * DAT_0029f710;" case number_literal : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "fVar16 = (float)dVar14 * DAT_0029f710;" (assignment_expression "fVar16 = (float)dVar14 * DAT_0029f710" identifier = (binary_expression "(float)dVar14 * DAT_0029f710" (cast_expression "(float)dVar14" ( (type_descriptor "float" primitive_type) ) identifier) * identifier)) ;)) }))) (goto_statement "goto LAB_0028be75;" goto statement_identifier ;) })) (if_statement "if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L429:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L429;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n              }\n              goto LAB_0028bc22;\n            }" if (parenthesized_expression "((uVar8 & 0x20002) == 0)" ( (binary_expression "(uVar8 & 0x20002) == 0" (parenthesized_expression "(uVar8 & 0x20002)" ( (binary_expression "uVar8 & 0x20002" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if (uVar7 == 0) {\n_L429:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L429;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n              }\n              goto LAB_0028bc22;\n            }" { (if_statement "if (uVar7 == 0) {\n_L429:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L429;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n              }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n_L429:\n                dVar14 = 0.0;\n              }" { (labeled_statement "_L429:\n                dVar14 = 0.0;" statement_identifier : (expression_statement "dVar14 = 0.0;" (assignment_expression "dVar14 = 0.0" identifier = number_literal) ;)) }) (else_clause "else {\n                switch(uVar6) {\n                default:\n                  goto _L429;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n              }" else (compound_statement "{\n                switch(uVar6) {\n                default:\n                  goto _L429;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n              }" { (switch_statement "switch(uVar6) {\n                default:\n                  goto _L429;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n                default:\n                  goto _L429;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }" { (case_statement "default:\n                  goto _L429;" default : (goto_statement "goto _L429;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;" case number_literal : (expression_statement "uVar3 = ReadBlobShort(image);" (assignment_expression "uVar3 = ReadBlobShort(image)" identifier = (call_expression "ReadBlobShort(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)uVar3;" (assignment_expression "uVar11 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;" case number_literal : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;" case number_literal : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)ROUND(fVar16);" (assignment_expression "uVar11 = (uint)ROUND(fVar16)" identifier = (cast_expression "(uint)ROUND(fVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(fVar16)" identifier (argument_list "(fVar16)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);" case number_literal : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)ROUND(dVar14);" (assignment_expression "uVar11 = (uint)ROUND(dVar14)" identifier = (cast_expression "(uint)ROUND(dVar14)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(dVar14)" identifier (argument_list "(dVar14)" ( identifier ))))) ;)) })) (expression_statement "dVar14 = (double)(uVar11 & 0xffff);" (assignment_expression "dVar14 = (double)(uVar11 & 0xffff)" identifier = (cast_expression "(double)(uVar11 & 0xffff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uVar11 & 0xffff)" ( (binary_expression "uVar11 & 0xffff" identifier & number_literal) )))) ;) }))) (goto_statement "goto LAB_0028bc22;" goto statement_identifier ;) })) (switch_statement "switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c07a;\n            default:\n              goto _L429;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c07a:\n              uVar11 = (uint)local_103e;\n            }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c07a;\n            default:\n              goto _L429;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c07a:\n              uVar11 = (uint)local_103e;\n            }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n              uVar11 = ReadBlobByte(image);\n              break;" case number_literal : (expression_statement "uVar11 = ReadBlobByte(image);" (assignment_expression "uVar11 = ReadBlobByte(image)" identifier = (call_expression "ReadBlobByte(image)" identifier (argument_list "(image)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;" case number_literal : (expression_statement "uVar3 = ReadBlobShort(image);" (assignment_expression "uVar3 = ReadBlobShort(image)" identifier = (call_expression "ReadBlobShort(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)uVar3;" (assignment_expression "uVar11 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n              uVar11 = ReadBlobLong(image);\n              break;" case number_literal : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c07a;" case number_literal : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "local_103e = (ushort)ROUND(fVar16);" (assignment_expression "local_103e = (ushort)ROUND(fVar16)" identifier = (cast_expression "(ushort)ROUND(fVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(fVar16)" identifier (argument_list "(fVar16)" ( identifier ))))) ;) (goto_statement "goto LAB_0028c07a;" goto statement_identifier ;)) (case_statement "default:\n              goto _L429;" default : (goto_statement "goto _L429;" goto statement_identifier ;)) (case_statement "case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c07a:\n              uVar11 = (uint)local_103e;" case number_literal : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "local_103e = (ushort)ROUND(dVar14);" (assignment_expression "local_103e = (ushort)ROUND(dVar14)" identifier = (cast_expression "(ushort)ROUND(dVar14)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(dVar14)" identifier (argument_list "(dVar14)" ( identifier ))))) ;) (labeled_statement "LAB_0028c07a:\n              uVar11 = (uint)local_103e;" statement_identifier : (expression_statement "uVar11 = (uint)local_103e;" (assignment_expression "uVar11 = (uint)local_103e" identifier = (cast_expression "(uint)local_103e" ( (type_descriptor "uint" type_identifier) ) identifier)) ;))) })) (expression_statement "dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;" (assignment_expression "dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0" identifier = (binary_expression "(double)(uVar11 & 0xff) * (double)DAT_002a7ff0" (cast_expression "(double)(uVar11 & 0xff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uVar11 & 0xff)" ( (binary_expression "uVar11 & 0xff" identifier & number_literal) ))) * (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (labeled_statement "LAB_0028bc22:\n            pPVar12 = image->channel_map;" statement_identifier : (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;)) (expression_statement "pQVar9[pPVar12->offset] = dVar14;" (assignment_expression "pQVar9[pPVar12->offset] = dVar14" (subscript_expression "pQVar9[pPVar12->offset]" identifier [ (field_expression "pPVar12->offset" identifier -> field_identifier) ]) = identifier) ;) (if_statement "if (uVar5 < 3) {\nLAB_0028bc37:\n              pQVar9[pPVar12[1].offset] = dVar14;\n              pQVar9[pPVar12[2].offset] = dVar14;\n              if (uVar5 == 2) {\n                if (uVar13 != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }\n                }\n                if ((uVar8 & 0x20002) != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }\n                }\n                if (uVar7 != 0) {\n                  switch(uVar6) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }\n                }\n                goto _L443;\n              }\n              goto LAB_0028bc60;\n            }" if (parenthesized_expression "(uVar5 < 3)" ( (binary_expression "uVar5 < 3" identifier < number_literal) )) (compound_statement "{\nLAB_0028bc37:\n              pQVar9[pPVar12[1].offset] = dVar14;\n              pQVar9[pPVar12[2].offset] = dVar14;\n              if (uVar5 == 2) {\n                if (uVar13 != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }\n                }\n                if ((uVar8 & 0x20002) != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }\n                }\n                if (uVar7 != 0) {\n                  switch(uVar6) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }\n                }\n                goto _L443;\n              }\n              goto LAB_0028bc60;\n            }" { (labeled_statement "LAB_0028bc37:\n              pQVar9[pPVar12[1].offset] = dVar14;" statement_identifier : (expression_statement "pQVar9[pPVar12[1].offset] = dVar14;" (assignment_expression "pQVar9[pPVar12[1].offset] = dVar14" (subscript_expression "pQVar9[pPVar12[1].offset]" identifier [ (field_expression "pPVar12[1].offset" (subscript_expression "pPVar12[1]" identifier [ number_literal ]) . field_identifier) ]) = identifier) ;)) (expression_statement "pQVar9[pPVar12[2].offset] = dVar14;" (assignment_expression "pQVar9[pPVar12[2].offset] = dVar14" (subscript_expression "pQVar9[pPVar12[2].offset]" identifier [ (field_expression "pPVar12[2].offset" (subscript_expression "pPVar12[2]" identifier [ number_literal ]) . field_identifier) ]) = identifier) ;) (if_statement "if (uVar5 == 2) {\n                if (uVar13 != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }\n                }\n                if ((uVar8 & 0x20002) != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }\n                }\n                if (uVar7 != 0) {\n                  switch(uVar6) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }\n                }\n                goto _L443;\n              }" if (parenthesized_expression "(uVar5 == 2)" ( (binary_expression "uVar5 == 2" identifier == number_literal) )) (compound_statement "{\n                if (uVar13 != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }\n                }\n                if ((uVar8 & 0x20002) != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }\n                }\n                if (uVar7 != 0) {\n                  switch(uVar6) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }\n                }\n                goto _L443;\n              }" { (if_statement "if (uVar13 != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }\n                }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }\n                }" { (switch_statement "switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L361;\n                  case 6:\n                    goto _L362;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L363;\n                  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                    goto _L358;" case number_literal : (goto_statement "goto _L358;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                    goto _L360;" case number_literal : (goto_statement "goto _L360;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                    goto _L361;" case number_literal : (goto_statement "goto _L361;" goto statement_identifier ;)) (case_statement "case 6:\n                    goto _L362;" case number_literal : (goto_statement "goto _L362;" goto statement_identifier ;)) (case_statement "default:\n                    goto _L443;" default : (goto_statement "goto _L443;" goto statement_identifier ;)) (case_statement "case 8:\n                    goto _L363;" case number_literal : (goto_statement "goto _L363;" goto statement_identifier ;)) })) })) (if_statement "if ((uVar8 & 0x20002) != 0) {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }\n                }" if (parenthesized_expression "((uVar8 & 0x20002) != 0)" ( (binary_expression "(uVar8 & 0x20002) != 0" (parenthesized_expression "(uVar8 & 0x20002)" ( (binary_expression "uVar8 & 0x20002" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }\n                }" { (switch_statement "switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n                    goto _L348;\n                  case 4:\n                  case 5:\n                    goto _L349;\n                  case 6:\n                    goto _L350;\n                  default:\n                    goto _L443;\n                  case 8:\n                    goto _L351;\n                  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                    goto _L358;" case number_literal : (goto_statement "goto _L358;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                    goto _L348;" case number_literal : (goto_statement "goto _L348;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                    goto _L349;" case number_literal : (goto_statement "goto _L349;" goto statement_identifier ;)) (case_statement "case 6:\n                    goto _L350;" case number_literal : (goto_statement "goto _L350;" goto statement_identifier ;)) (case_statement "default:\n                    goto _L443;" default : (goto_statement "goto _L443;" goto statement_identifier ;)) (case_statement "case 8:\n                    goto _L351;" case number_literal : (goto_statement "goto _L351;" goto statement_identifier ;)) })) })) (if_statement "if (uVar7 != 0) {\n                  switch(uVar6) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }\n                }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                  switch(uVar6) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }\n                }" { (switch_statement "switch(uVar6) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto _L360;\n                  case 4:\n                  case 5:\n                    goto _L355;\n                  case 6:\n                    goto _L356;\n                  case 8:\n                    goto _L357;\n                  }" { (case_statement "default:\n                    break;" default : (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                    goto _L360;" case number_literal : (goto_statement "goto _L360;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                    goto _L355;" case number_literal : (goto_statement "goto _L355;" goto statement_identifier ;)) (case_statement "case 6:\n                    goto _L356;" case number_literal : (goto_statement "goto _L356;" goto statement_identifier ;)) (case_statement "case 8:\n                    goto _L357;" case number_literal : (goto_statement "goto _L357;" goto statement_identifier ;)) })) })) (goto_statement "goto _L443;" goto statement_identifier ;) })) (goto_statement "goto LAB_0028bc60;" goto statement_identifier ;) })) (if_statement "if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L435:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L435;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              pQVar9[pPVar12[1].offset] = dVar14;\n              if (uVar7 == 0) goto _L437;\n              switch(uVar6) {\n              default:\n                goto _L437;\n              case 2:\n              case 3:\n_L312:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)ROUND(fVar16);\n                break;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)ROUND(dVar14);\n              }\n              fVar16 = (float)(uVar11 & 0xffff);\n              goto LAB_0028be75;\n            }" if (parenthesized_expression "((uVar8 & 0x20002) == 0)" ( (binary_expression "(uVar8 & 0x20002) == 0" (parenthesized_expression "(uVar8 & 0x20002)" ( (binary_expression "uVar8 & 0x20002" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if (uVar7 == 0) {\n_L435:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L435;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              pQVar9[pPVar12[1].offset] = dVar14;\n              if (uVar7 == 0) goto _L437;\n              switch(uVar6) {\n              default:\n                goto _L437;\n              case 2:\n              case 3:\n_L312:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)ROUND(fVar16);\n                break;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)ROUND(dVar14);\n              }\n              fVar16 = (float)(uVar11 & 0xffff);\n              goto LAB_0028be75;\n            }" { (if_statement "if (uVar7 == 0) {\n_L435:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L435;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n_L435:\n                dVar14 = 0.0;\n              }" { (labeled_statement "_L435:\n                dVar14 = 0.0;" statement_identifier : (expression_statement "dVar14 = 0.0;" (assignment_expression "dVar14 = 0.0" identifier = number_literal) ;)) }) (else_clause "else {\n                switch(uVar6) {\n                default:\n                  goto _L435;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }" else (compound_statement "{\n                switch(uVar6) {\n                default:\n                  goto _L435;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }" { (switch_statement "switch(uVar6) {\n                default:\n                  goto _L435;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n                default:\n                  goto _L435;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }" { (case_statement "default:\n                  goto _L435;" default : (goto_statement "goto _L435;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;" case number_literal : (expression_statement "uVar3 = ReadBlobShort(image);" (assignment_expression "uVar3 = ReadBlobShort(image)" identifier = (call_expression "ReadBlobShort(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)uVar3;" (assignment_expression "uVar11 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;" case number_literal : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;" case number_literal : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)ROUND(fVar16);" (assignment_expression "uVar11 = (uint)ROUND(fVar16)" identifier = (cast_expression "(uint)ROUND(fVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(fVar16)" identifier (argument_list "(fVar16)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);" case number_literal : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)ROUND(dVar14);" (assignment_expression "uVar11 = (uint)ROUND(dVar14)" identifier = (cast_expression "(uint)ROUND(dVar14)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(dVar14)" identifier (argument_list "(dVar14)" ( identifier ))))) ;)) })) (expression_statement "dVar14 = (double)(uVar11 & 0xffff);" (assignment_expression "dVar14 = (double)(uVar11 & 0xffff)" identifier = (cast_expression "(double)(uVar11 & 0xffff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uVar11 & 0xffff)" ( (binary_expression "uVar11 & 0xffff" identifier & number_literal) )))) ;) (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) }))) (expression_statement "pQVar9[pPVar12[1].offset] = dVar14;" (assignment_expression "pQVar9[pPVar12[1].offset] = dVar14" (subscript_expression "pQVar9[pPVar12[1].offset]" identifier [ (field_expression "pPVar12[1].offset" (subscript_expression "pPVar12[1]" identifier [ number_literal ]) . field_identifier) ]) = identifier) ;) (if_statement "if (uVar7 == 0) goto _L437;" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (goto_statement "goto _L437;" goto statement_identifier ;)) (switch_statement "switch(uVar6) {\n              default:\n                goto _L437;\n              case 2:\n              case 3:\n_L312:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)ROUND(fVar16);\n                break;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)ROUND(dVar14);\n              }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n              default:\n                goto _L437;\n              case 2:\n              case 3:\n_L312:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)ROUND(fVar16);\n                break;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)ROUND(dVar14);\n              }" { (case_statement "default:\n                goto _L437;" default : (goto_statement "goto _L437;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n_L312:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;" case number_literal : (labeled_statement "_L312:\n                uVar3 = ReadBlobShort(image);" statement_identifier : (expression_statement "uVar3 = ReadBlobShort(image);" (assignment_expression "uVar3 = ReadBlobShort(image)" identifier = (call_expression "ReadBlobShort(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (expression_statement "uVar11 = (uint)uVar3;" (assignment_expression "uVar11 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uVar11 = ReadBlobLong(image);\n                break;" case number_literal : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)ROUND(fVar16);\n                break;" case number_literal : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)ROUND(fVar16);" (assignment_expression "uVar11 = (uint)ROUND(fVar16)" identifier = (cast_expression "(uint)ROUND(fVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(fVar16)" identifier (argument_list "(fVar16)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)ROUND(dVar14);" case number_literal : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)ROUND(dVar14);" (assignment_expression "uVar11 = (uint)ROUND(dVar14)" identifier = (cast_expression "(uint)ROUND(dVar14)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(dVar14)" identifier (argument_list "(dVar14)" ( identifier ))))) ;)) })) (expression_statement "fVar16 = (float)(uVar11 & 0xffff);" (assignment_expression "fVar16 = (float)(uVar11 & 0xffff)" identifier = (cast_expression "(float)(uVar11 & 0xffff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar11 & 0xffff)" ( (binary_expression "uVar11 & 0xffff" identifier & number_literal) )))) ;) (goto_statement "goto LAB_0028be75;" goto statement_identifier ;) })) (switch_statement "switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c4c8;\n            default:\n              fVar16 = 0.0;\n              goto LAB_0028c4eb;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c4c8:\n              uVar11 = (uint)local_103e;\n            }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c4c8;\n            default:\n              fVar16 = 0.0;\n              goto LAB_0028c4eb;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c4c8:\n              uVar11 = (uint)local_103e;\n            }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n              uVar11 = ReadBlobByte(image);\n              break;" case number_literal : (expression_statement "uVar11 = ReadBlobByte(image);" (assignment_expression "uVar11 = ReadBlobByte(image)" identifier = (call_expression "ReadBlobByte(image)" identifier (argument_list "(image)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;" case number_literal : (expression_statement "uVar3 = ReadBlobShort(image);" (assignment_expression "uVar3 = ReadBlobShort(image)" identifier = (call_expression "ReadBlobShort(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)uVar3;" (assignment_expression "uVar11 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n              uVar11 = ReadBlobLong(image);\n              break;" case number_literal : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028c4c8;" case number_literal : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "local_103e = (ushort)ROUND(fVar16);" (assignment_expression "local_103e = (ushort)ROUND(fVar16)" identifier = (cast_expression "(ushort)ROUND(fVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(fVar16)" identifier (argument_list "(fVar16)" ( identifier ))))) ;) (goto_statement "goto LAB_0028c4c8;" goto statement_identifier ;)) (case_statement "default:\n              fVar16 = 0.0;\n              goto LAB_0028c4eb;" default : (expression_statement "fVar16 = 0.0;" (assignment_expression "fVar16 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_0028c4eb;" goto statement_identifier ;)) (case_statement "case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028c4c8:\n              uVar11 = (uint)local_103e;" case number_literal : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "local_103e = (ushort)ROUND(dVar14);" (assignment_expression "local_103e = (ushort)ROUND(dVar14)" identifier = (cast_expression "(ushort)ROUND(dVar14)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(dVar14)" identifier (argument_list "(dVar14)" ( identifier ))))) ;) (labeled_statement "LAB_0028c4c8:\n              uVar11 = (uint)local_103e;" statement_identifier : (expression_statement "uVar11 = (uint)local_103e;" (assignment_expression "uVar11 = (uint)local_103e" identifier = (cast_expression "(uint)local_103e" ( (type_descriptor "uint" type_identifier) ) identifier)) ;))) })) (expression_statement "fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;" (assignment_expression "fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0" identifier = (binary_expression "(float)(uVar11 & 0xff) * DAT_002a7ff0" (cast_expression "(float)(uVar11 & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar11 & 0xff)" ( (binary_expression "uVar11 & 0xff" identifier & number_literal) ))) * identifier)) ;) (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (labeled_statement "LAB_0028c4eb:\n            pQVar9[pPVar12[1].offset] = (double)fVar16;" statement_identifier : (expression_statement "pQVar9[pPVar12[1].offset] = (double)fVar16;" (assignment_expression "pQVar9[pPVar12[1].offset] = (double)fVar16" (subscript_expression "pQVar9[pPVar12[1].offset]" identifier [ (field_expression "pPVar12[1].offset" (subscript_expression "pPVar12[1]" identifier [ number_literal ]) . field_identifier) ]) = (cast_expression "(double)fVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;)) (switch_statement "switch(uVar6) {\n            case 0:\n            case 1:\n_L310:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n              break;\n            default:\n_L437:\n              fVar16 = 0.0;\n              goto LAB_0028be75;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n            }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n            case 0:\n            case 1:\n_L310:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n              break;\n            default:\n_L437:\n              fVar16 = 0.0;\n              goto LAB_0028be75;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n            }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n_L310:\n              uVar11 = ReadBlobByte(image);\n              break;" case number_literal : (labeled_statement "_L310:\n              uVar11 = ReadBlobByte(image);" statement_identifier : (expression_statement "uVar11 = ReadBlobByte(image);" (assignment_expression "uVar11 = ReadBlobByte(image)" identifier = (call_expression "ReadBlobByte(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;" case number_literal : (expression_statement "uVar3 = ReadBlobShort(image);" (assignment_expression "uVar3 = ReadBlobShort(image)" identifier = (call_expression "ReadBlobShort(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)uVar3;" (assignment_expression "uVar11 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n              uVar11 = ReadBlobLong(image);\n              break;" case number_literal : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n              fVar16 = ReadBlobFloat(image);\n              uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n              break;" case number_literal : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)(ushort)(short)ROUND(fVar16);" (assignment_expression "uVar11 = (uint)(ushort)(short)ROUND(fVar16)" identifier = (cast_expression "(uint)(ushort)(short)ROUND(fVar16)" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(ushort)(short)ROUND(fVar16)" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(short)ROUND(fVar16)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(fVar16)" identifier (argument_list "(fVar16)" ( identifier ))))))) ;) (break_statement "break;" break ;)) (case_statement "default:\n_L437:\n              fVar16 = 0.0;\n              goto LAB_0028be75;" default : (labeled_statement "_L437:\n              fVar16 = 0.0;" statement_identifier : (expression_statement "fVar16 = 0.0;" (assignment_expression "fVar16 = 0.0" identifier = number_literal) ;)) (goto_statement "goto LAB_0028be75;" goto statement_identifier ;)) (case_statement "case 8:\n              dVar14 = ReadBlobDouble(image);\n              uVar11 = (uint)(ushort)(short)ROUND(dVar14);" case number_literal : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)(ushort)(short)ROUND(dVar14);" (assignment_expression "uVar11 = (uint)(ushort)(short)ROUND(dVar14)" identifier = (cast_expression "(uint)(ushort)(short)ROUND(dVar14)" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(ushort)(short)ROUND(dVar14)" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(short)ROUND(dVar14)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar14)" identifier (argument_list "(dVar14)" ( identifier ))))))) ;)) })) (expression_statement "fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;" (assignment_expression "fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0" identifier = (binary_expression "(float)(uVar11 & 0xff) * DAT_002a7ff0" (cast_expression "(float)(uVar11 & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar11 & 0xff)" ( (binary_expression "uVar11 & 0xff" identifier & number_literal) ))) * identifier)) ;) (labeled_statement "LAB_0028be75:\n            pPVar12 = image->channel_map;" statement_identifier : (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;)) (expression_statement "pQVar9[pPVar12[2].offset] = (double)fVar16;" (assignment_expression "pQVar9[pPVar12[2].offset] = (double)fVar16" (subscript_expression "pQVar9[pPVar12[2].offset]" identifier [ (field_expression "pPVar12[2].offset" (subscript_expression "pPVar12[2]" identifier [ number_literal ]) . field_identifier) ]) = (cast_expression "(double)fVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (uVar5 == 4) {\n              if (image->colorspace == CMYKColorspace) {\n                if (uVar13 == 0) {\n                  if ((uVar8 & 0x20002) == 0) {\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }\n                  else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }\n                }\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  pQVar9[pPVar12[5].offset] = (double)fVar16;\n                }\n                goto LAB_0028bc60;\n              }\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) == 0) {\n                  if (uVar7 == 0) {\n_L443:\n                    dVar14 = 0.0;\n                  }\n                  else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }\nLAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                  pPVar12 = image->channel_map;\n                }\n              }\n              else {\n                switch(uVar6) {\n                case 0:\n                case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;\n                case 2:\n                case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;\n                case 4:\n                case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;\n                case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L443;\n                case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n              goto LAB_0028c1d8;\n            }" if (parenthesized_expression "(uVar5 == 4)" ( (binary_expression "uVar5 == 4" identifier == number_literal) )) (compound_statement "{\n              if (image->colorspace == CMYKColorspace) {\n                if (uVar13 == 0) {\n                  if ((uVar8 & 0x20002) == 0) {\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }\n                  else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }\n                }\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  pQVar9[pPVar12[5].offset] = (double)fVar16;\n                }\n                goto LAB_0028bc60;\n              }\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) == 0) {\n                  if (uVar7 == 0) {\n_L443:\n                    dVar14 = 0.0;\n                  }\n                  else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }\nLAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                  pPVar12 = image->channel_map;\n                }\n              }\n              else {\n                switch(uVar6) {\n                case 0:\n                case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;\n                case 2:\n                case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;\n                case 4:\n                case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;\n                case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L443;\n                case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n              goto LAB_0028c1d8;\n            }" { (if_statement "if (image->colorspace == CMYKColorspace) {\n                if (uVar13 == 0) {\n                  if ((uVar8 & 0x20002) == 0) {\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }\n                  else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }\n                }\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  pQVar9[pPVar12[5].offset] = (double)fVar16;\n                }\n                goto LAB_0028bc60;\n              }" if (parenthesized_expression "(image->colorspace == CMYKColorspace)" ( (binary_expression "image->colorspace == CMYKColorspace" (field_expression "image->colorspace" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                if (uVar13 == 0) {\n                  if ((uVar8 & 0x20002) == 0) {\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }\n                  else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }\n                }\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  pQVar9[pPVar12[5].offset] = (double)fVar16;\n                }\n                goto LAB_0028bc60;\n              }" { (if_statement "if (uVar13 == 0) {\n                  if ((uVar8 & 0x20002) == 0) {\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }\n                  else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }\n                }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                  if ((uVar8 & 0x20002) == 0) {\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }\n                  else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }\n                }" { (if_statement "if ((uVar8 & 0x20002) == 0) {\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }\n                  else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }" if (parenthesized_expression "((uVar8 & 0x20002) == 0)" ( (binary_expression "(uVar8 & 0x20002) == 0" (parenthesized_expression "(uVar8 & 0x20002)" ( (binary_expression "uVar8 & 0x20002" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }\n                  }" { (if_statement "if (uVar7 == 0) {\n_L440:\n                      fVar16 = 0.0;\n                    }\n                    else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n_L440:\n                      fVar16 = 0.0;\n                    }" { (labeled_statement "_L440:\n                      fVar16 = 0.0;" statement_identifier : (expression_statement "fVar16 = 0.0;" (assignment_expression "fVar16 = 0.0" identifier = number_literal) ;)) }) (else_clause "else {\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }" else (compound_statement "{\n                      switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }\nLAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);\n                      pPVar12 = image->channel_map;\n                    }" { (switch_statement "switch(uVar6) {\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n                      default:\n                        goto _L440;\n                      case 2:\n                      case 3:\n                        goto _L337;\n                      case 4:\n                      case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;\n                      case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;\n                      case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);\n                      }" { (case_statement "default:\n                        goto _L440;" default : (goto_statement "goto _L440;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                        goto _L337;" case number_literal : (goto_statement "goto _L337;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                        uVar11 = ReadBlobLong(image);\n                        break;" case number_literal : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                        fVar16 = ReadBlobFloat(image);\n                        uVar11 = (uint)ROUND(fVar16);\n                        break;" case number_literal : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)ROUND(fVar16);" (assignment_expression "uVar11 = (uint)ROUND(fVar16)" identifier = (cast_expression "(uint)ROUND(fVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(fVar16)" identifier (argument_list "(fVar16)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n                        dVar14 = ReadBlobDouble(image);\n                        uVar11 = (uint)ROUND(dVar14);" case number_literal : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)ROUND(dVar14);" (assignment_expression "uVar11 = (uint)ROUND(dVar14)" identifier = (cast_expression "(uint)ROUND(dVar14)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(dVar14)" identifier (argument_list "(dVar14)" ( identifier ))))) ;)) })) (labeled_statement "LAB_0028cafc:\n                      fVar16 = (float)(uVar11 & 0xffff);" statement_identifier : (expression_statement "fVar16 = (float)(uVar11 & 0xffff);" (assignment_expression "fVar16 = (float)(uVar11 & 0xffff)" identifier = (cast_expression "(float)(uVar11 & 0xffff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar11 & 0xffff)" ( (binary_expression "uVar11 & 0xffff" identifier & number_literal) )))) ;)) (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) }))) }) (else_clause "else {\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }" else (compound_statement "{\n                    switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }\nLAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;\n                    pPVar12 = image->channel_map;\n                  }" { (switch_statement "switch(uVar6) {\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n                    case 0:\n                    case 1:\n                      goto _L335;\n                    case 2:\n                    case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;\n                    case 4:\n                    case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;\n                    default:\n                      goto _L440;\n                    case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                    }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                      goto _L335;" case number_literal : (goto_statement "goto _L335;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                      uVar3 = ReadBlobShort(image);\n                      uVar11 = (uint)uVar3;\n                      break;" case number_literal : (expression_statement "uVar3 = ReadBlobShort(image);" (assignment_expression "uVar3 = ReadBlobShort(image)" identifier = (call_expression "ReadBlobShort(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)uVar3;" (assignment_expression "uVar11 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                      uVar11 = ReadBlobLong(image);\n                      break;" case number_literal : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                      break;" case number_literal : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)(ushort)(short)ROUND(fVar16);" (assignment_expression "uVar11 = (uint)(ushort)(short)ROUND(fVar16)" identifier = (cast_expression "(uint)(ushort)(short)ROUND(fVar16)" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(ushort)(short)ROUND(fVar16)" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(short)ROUND(fVar16)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(fVar16)" identifier (argument_list "(fVar16)" ( identifier ))))))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                      goto _L440;" default : (goto_statement "goto _L440;" goto statement_identifier ;)) (case_statement "case 8:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)(ushort)(short)ROUND(dVar14);" case number_literal : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)(ushort)(short)ROUND(dVar14);" (assignment_expression "uVar11 = (uint)(ushort)(short)ROUND(dVar14)" identifier = (cast_expression "(uint)(ushort)(short)ROUND(dVar14)" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(ushort)(short)ROUND(dVar14)" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(short)ROUND(dVar14)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar14)" identifier (argument_list "(dVar14)" ( identifier ))))))) ;)) })) (labeled_statement "LAB_0028cabb:\n                    fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;" statement_identifier : (expression_statement "fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0;" (assignment_expression "fVar16 = (float)(uVar11 & 0xff) * DAT_002a7ff0" identifier = (binary_expression "(float)(uVar11 & 0xff) * DAT_002a7ff0" (cast_expression "(float)(uVar11 & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uVar11 & 0xff)" ( (binary_expression "uVar11 & 0xff" identifier & number_literal) ))) * identifier)) ;)) (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) }))) }) (else_clause "else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }\n                }" else (compound_statement "{\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }\n                }" { (switch_statement "switch(uVar6) {\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n                  case 0:\n                  case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;\n                  case 2:\n                  case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;\n                  default:\n                    goto _L440;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;\n                  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n_L335:\n                    uVar11 = ReadBlobByte(image);\n                    goto LAB_0028cabb;" case number_literal : (labeled_statement "_L335:\n                    uVar11 = ReadBlobByte(image);" statement_identifier : (expression_statement "uVar11 = ReadBlobByte(image);" (assignment_expression "uVar11 = ReadBlobByte(image)" identifier = (call_expression "ReadBlobByte(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (goto_statement "goto LAB_0028cabb;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n_L337:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    goto LAB_0028cafc;" case number_literal : (labeled_statement "_L337:\n                    uVar3 = ReadBlobShort(image);" statement_identifier : (expression_statement "uVar3 = ReadBlobShort(image);" (assignment_expression "uVar3 = ReadBlobShort(image)" identifier = (call_expression "ReadBlobShort(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (expression_statement "uVar11 = (uint)uVar3;" (assignment_expression "uVar11 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_0028cafc;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                    uVar11 = ReadBlobLong(image);\n                    fVar16 = (float)uVar11 / DAT_002a7fec;\n                    pPVar12 = image->channel_map;\n                    break;" case number_literal : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "fVar16 = (float)uVar11 / DAT_002a7fec;" (assignment_expression "fVar16 = (float)uVar11 / DAT_002a7fec" identifier = (binary_expression "(float)uVar11 / DAT_002a7fec" (cast_expression "(float)uVar11" ( (type_descriptor "float" primitive_type) ) identifier) / identifier)) ;) (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = fVar16 * DAT_0029f710;\n                    break;" case number_literal : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "fVar16 = fVar16 * DAT_0029f710;" (assignment_expression "fVar16 = fVar16 * DAT_0029f710" identifier = (binary_expression "fVar16 * DAT_0029f710" identifier * identifier)) ;) (break_statement "break;" break ;)) (case_statement "default:\n                    goto _L440;" default : (goto_statement "goto _L440;" goto statement_identifier ;)) (case_statement "case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    pPVar12 = image->channel_map;\n                    fVar16 = (float)dVar14 * DAT_0029f710;" case number_literal : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "fVar16 = (float)dVar14 * DAT_0029f710;" (assignment_expression "fVar16 = (float)dVar14 * DAT_0029f710" identifier = (binary_expression "(float)dVar14 * DAT_0029f710" (cast_expression "(float)dVar14" ( (type_descriptor "float" primitive_type) ) identifier) * identifier)) ;)) })) }))) (if_statement "if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  pQVar9[pPVar12[5].offset] = (double)fVar16;\n                }" if (parenthesized_expression "(pPVar12[5].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar12[5].traits != UndefinedPixelTrait" (field_expression "pPVar12[5].traits" (subscript_expression "pPVar12[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n                  pQVar9[pPVar12[5].offset] = (double)fVar16;\n                }" { (expression_statement "pQVar9[pPVar12[5].offset] = (double)fVar16;" (assignment_expression "pQVar9[pPVar12[5].offset] = (double)fVar16" (subscript_expression "pQVar9[pPVar12[5].offset]" identifier [ (field_expression "pPVar12[5].offset" (subscript_expression "pPVar12[5]" identifier [ number_literal ]) . field_identifier) ]) = (cast_expression "(double)fVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) })) (goto_statement "goto LAB_0028bc60;" goto statement_identifier ;) })) (if_statement "if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) == 0) {\n                  if (uVar7 == 0) {\n_L443:\n                    dVar14 = 0.0;\n                  }\n                  else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }\nLAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                  pPVar12 = image->channel_map;\n                }\n              }\n              else {\n                switch(uVar6) {\n                case 0:\n                case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;\n                case 2:\n                case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;\n                case 4:\n                case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;\n                case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L443;\n                case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                if ((uVar8 & 0x20002) == 0) {\n                  if (uVar7 == 0) {\n_L443:\n                    dVar14 = 0.0;\n                  }\n                  else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }\nLAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                  pPVar12 = image->channel_map;\n                }\n              }" { (if_statement "if ((uVar8 & 0x20002) == 0) {\n                  if (uVar7 == 0) {\n_L443:\n                    dVar14 = 0.0;\n                  }\n                  else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }\n                }\n                else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }\nLAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                  pPVar12 = image->channel_map;\n                }" if (parenthesized_expression "((uVar8 & 0x20002) == 0)" ( (binary_expression "(uVar8 & 0x20002) == 0" (parenthesized_expression "(uVar8 & 0x20002)" ( (binary_expression "uVar8 & 0x20002" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  if (uVar7 == 0) {\n_L443:\n                    dVar14 = 0.0;\n                  }\n                  else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }\n                }" { (if_statement "if (uVar7 == 0) {\n_L443:\n                    dVar14 = 0.0;\n                  }\n                  else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n_L443:\n                    dVar14 = 0.0;\n                  }" { (labeled_statement "_L443:\n                    dVar14 = 0.0;" statement_identifier : (expression_statement "dVar14 = 0.0;" (assignment_expression "dVar14 = 0.0" identifier = number_literal) ;)) }) (else_clause "else {\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }" else (compound_statement "{\n                    switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }\nLAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);\n                    pPVar12 = image->channel_map;\n                  }" { (switch_statement "switch(uVar6) {\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n                    default:\n                      goto _L443;\n                    case 2:\n                    case 3:\n                      goto _L360;\n                    case 4:\n                    case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;\n                    case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;\n                    case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);\n                    }" { (case_statement "default:\n                      goto _L443;" default : (goto_statement "goto _L443;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                      goto _L360;" case number_literal : (goto_statement "goto _L360;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n_L355:\n                      uVar11 = ReadBlobLong(image);\n                      break;" case number_literal : (labeled_statement "_L355:\n                      uVar11 = ReadBlobLong(image);" statement_identifier : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (break_statement "break;" break ;)) (case_statement "case 6:\n_L356:\n                      fVar16 = ReadBlobFloat(image);\n                      uVar11 = (uint)ROUND(fVar16);\n                      break;" case number_literal : (labeled_statement "_L356:\n                      fVar16 = ReadBlobFloat(image);" statement_identifier : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (expression_statement "uVar11 = (uint)ROUND(fVar16);" (assignment_expression "uVar11 = (uint)ROUND(fVar16)" identifier = (cast_expression "(uint)ROUND(fVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(fVar16)" identifier (argument_list "(fVar16)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n_L357:\n                      dVar14 = ReadBlobDouble(image);\n                      uVar11 = (uint)ROUND(dVar14);" case number_literal : (labeled_statement "_L357:\n                      dVar14 = ReadBlobDouble(image);" statement_identifier : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (expression_statement "uVar11 = (uint)ROUND(dVar14);" (assignment_expression "uVar11 = (uint)ROUND(dVar14)" identifier = (cast_expression "(uint)ROUND(dVar14)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(dVar14)" identifier (argument_list "(dVar14)" ( identifier ))))) ;)) })) (labeled_statement "LAB_0028c63d:\n                    dVar14 = (double)(uVar11 & 0xffff);" statement_identifier : (expression_statement "dVar14 = (double)(uVar11 & 0xffff);" (assignment_expression "dVar14 = (double)(uVar11 & 0xffff)" identifier = (cast_expression "(double)(uVar11 & 0xffff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uVar11 & 0xffff)" ( (binary_expression "uVar11 & 0xffff" identifier & number_literal) )))) ;)) (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) }))) }) (else_clause "else {\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }\nLAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                  pPVar12 = image->channel_map;\n                }" else (compound_statement "{\n                  switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }\nLAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                  pPVar12 = image->channel_map;\n                }" { (switch_statement "switch(uVar6) {\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n                  case 0:\n                  case 1:\n                    goto _L358;\n                  case 2:\n                  case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;\n                  case 4:\n                  case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;\n                  default:\n                    goto _L443;\n                  case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n                  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                    goto _L358;" case number_literal : (goto_statement "goto _L358;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n_L348:\n                    uVar3 = ReadBlobShort(image);\n                    uVar11 = (uint)uVar3;\n                    break;" case number_literal : (labeled_statement "_L348:\n                    uVar3 = ReadBlobShort(image);" statement_identifier : (expression_statement "uVar3 = ReadBlobShort(image);" (assignment_expression "uVar3 = ReadBlobShort(image)" identifier = (call_expression "ReadBlobShort(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (expression_statement "uVar11 = (uint)uVar3;" (assignment_expression "uVar11 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n_L349:\n                    uVar11 = ReadBlobLong(image);\n                    break;" case number_literal : (labeled_statement "_L349:\n                    uVar11 = ReadBlobLong(image);" statement_identifier : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (break_statement "break;" break ;)) (case_statement "case 6:\n_L350:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                    break;" case number_literal : (labeled_statement "_L350:\n                    fVar16 = ReadBlobFloat(image);" statement_identifier : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (expression_statement "uVar11 = (uint)(ushort)(short)ROUND(fVar16);" (assignment_expression "uVar11 = (uint)(ushort)(short)ROUND(fVar16)" identifier = (cast_expression "(uint)(ushort)(short)ROUND(fVar16)" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(ushort)(short)ROUND(fVar16)" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(short)ROUND(fVar16)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(fVar16)" identifier (argument_list "(fVar16)" ( identifier ))))))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                    goto _L443;" default : (goto_statement "goto _L443;" goto statement_identifier ;)) (case_statement "case 8:\n_L351:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)(ushort)(short)ROUND(dVar14);" case number_literal : (labeled_statement "_L351:\n                    dVar14 = ReadBlobDouble(image);" statement_identifier : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (expression_statement "uVar11 = (uint)(ushort)(short)ROUND(dVar14);" (assignment_expression "uVar11 = (uint)(ushort)(short)ROUND(dVar14)" identifier = (cast_expression "(uint)(ushort)(short)ROUND(dVar14)" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(ushort)(short)ROUND(dVar14)" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(short)ROUND(dVar14)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar14)" identifier (argument_list "(dVar14)" ( identifier ))))))) ;)) })) (labeled_statement "LAB_0028c60d:\n                  dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;" statement_identifier : (expression_statement "dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;" (assignment_expression "dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0" identifier = (binary_expression "(double)(uVar11 & 0xff) * (double)DAT_002a7ff0" (cast_expression "(double)(uVar11 & 0xff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uVar11 & 0xff)" ( (binary_expression "uVar11 & 0xff" identifier & number_literal) ))) * (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;)) (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) }))) }) (else_clause "else {\n                switch(uVar6) {\n                case 0:\n                case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;\n                case 2:\n                case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;\n                case 4:\n                case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;\n                case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L443;\n                case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }" else (compound_statement "{\n                switch(uVar6) {\n                case 0:\n                case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;\n                case 2:\n                case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;\n                case 4:\n                case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;\n                case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L443;\n                case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }" { (switch_statement "switch(uVar6) {\n                case 0:\n                case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;\n                case 2:\n                case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;\n                case 4:\n                case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;\n                case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L443;\n                case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n                case 0:\n                case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;\n                case 2:\n                case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;\n                case 4:\n                case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;\n                case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L443;\n                case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n_L358:\n                  uVar11 = ReadBlobByte(image);\n                  goto LAB_0028c60d;" case number_literal : (labeled_statement "_L358:\n                  uVar11 = ReadBlobByte(image);" statement_identifier : (expression_statement "uVar11 = ReadBlobByte(image);" (assignment_expression "uVar11 = ReadBlobByte(image)" identifier = (call_expression "ReadBlobByte(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (goto_statement "goto LAB_0028c60d;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n_L360:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c63d;" case number_literal : (labeled_statement "_L360:\n                  uVar3 = ReadBlobShort(image);" statement_identifier : (expression_statement "uVar3 = ReadBlobShort(image);" (assignment_expression "uVar3 = ReadBlobShort(image)" identifier = (call_expression "ReadBlobShort(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (expression_statement "uVar11 = (uint)uVar3;" (assignment_expression "uVar11 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_0028c63d;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n_L361:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  pPVar12 = image->channel_map;\n                  break;" case number_literal : (labeled_statement "_L361:\n                  uVar11 = ReadBlobLong(image);" statement_identifier : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (expression_statement "dVar14 = (double)uVar11 / (double)DAT_002a7fec;" (assignment_expression "dVar14 = (double)uVar11 / (double)DAT_002a7fec" identifier = (binary_expression "(double)uVar11 / (double)DAT_002a7fec" (cast_expression "(double)uVar11" ( (type_descriptor "double" primitive_type) ) identifier) / (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n_L362:\n                  fVar16 = ReadBlobFloat(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;" case number_literal : (labeled_statement "_L362:\n                  fVar16 = ReadBlobFloat(image);" statement_identifier : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "dVar14 = (double)fVar16 * (double)DAT_0029f710;" (assignment_expression "dVar14 = (double)fVar16 * (double)DAT_0029f710" identifier = (binary_expression "(double)fVar16 * (double)DAT_0029f710" (cast_expression "(double)fVar16" ( (type_descriptor "double" primitive_type) ) identifier) * (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                  goto _L443;" default : (goto_statement "goto _L443;" goto statement_identifier ;)) (case_statement "case 8:\n_L363:\n                  dVar14 = ReadBlobDouble(image);\n                  pPVar12 = image->channel_map;\n                  dVar14 = dVar14 * (double)DAT_0029f710;" case number_literal : (labeled_statement "_L363:\n                  dVar14 = ReadBlobDouble(image);" statement_identifier : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "dVar14 = dVar14 * (double)DAT_0029f710;" (assignment_expression "dVar14 = dVar14 * (double)DAT_0029f710" identifier = (binary_expression "dVar14 * (double)DAT_0029f710" identifier * (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;)) })) }))) (goto_statement "goto LAB_0028c1d8;" goto statement_identifier ;) })) (if_statement "if (uVar5 != 5) goto LAB_0028bc60;" if (parenthesized_expression "(uVar5 != 5)" ( (binary_expression "uVar5 != 5" identifier != number_literal) )) (goto_statement "goto LAB_0028bc60;" goto statement_identifier ;)) (if_statement "if (uVar13 != 0) {\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                pPVar12 = image->channel_map;\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L391;\n              default:\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  dVar14 = 0.0;\n                  goto LAB_0028cba5;\n                }\n                goto LAB_0028c951;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                pPVar12 = image->channel_map;\n                dVar14 = dVar14 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L392;\n              }\n              pPVar12 = image->channel_map;\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028c951;\n            }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n              switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                pPVar12 = image->channel_map;\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L391;\n              default:\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  dVar14 = 0.0;\n                  goto LAB_0028cba5;\n                }\n                goto LAB_0028c951;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                pPVar12 = image->channel_map;\n                dVar14 = dVar14 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L392;\n              }\n              pPVar12 = image->channel_map;\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028c951;\n            }" { (switch_statement "switch(uVar6) {\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                pPVar12 = image->channel_map;\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L391;\n              default:\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  dVar14 = 0.0;\n                  goto LAB_0028cba5;\n                }\n                goto LAB_0028c951;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                pPVar12 = image->channel_map;\n                dVar14 = dVar14 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L392;\n              }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n              case 0:\n              case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                pPVar12 = image->channel_map;\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L391;\n              default:\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  dVar14 = 0.0;\n                  goto LAB_0028cba5;\n                }\n                goto LAB_0028c951;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                pPVar12 = image->channel_map;\n                dVar14 = dVar14 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L392;\n              }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                uVar11 = ReadBlobByte(image);\n                dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n                break;" case number_literal : (expression_statement "uVar11 = ReadBlobByte(image);" (assignment_expression "uVar11 = ReadBlobByte(image)" identifier = (call_expression "ReadBlobByte(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;" (assignment_expression "dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0" identifier = (binary_expression "(double)(uVar11 & 0xff) * (double)DAT_002a7ff0" (cast_expression "(double)(uVar11 & 0xff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uVar11 & 0xff)" ( (binary_expression "uVar11 & 0xff" identifier & number_literal) ))) * (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                uVar3 = ReadBlobShort(image);\n                dVar14 = (double)uVar3;\n                break;" case number_literal : (expression_statement "uVar3 = ReadBlobShort(image);" (assignment_expression "uVar3 = ReadBlobShort(image)" identifier = (call_expression "ReadBlobShort(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "dVar14 = (double)uVar3;" (assignment_expression "dVar14 = (double)uVar3" identifier = (cast_expression "(double)uVar3" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uVar11 = ReadBlobLong(image);\n                dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                break;" case number_literal : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "dVar14 = (double)uVar11 / (double)DAT_002a7fec;" (assignment_expression "dVar14 = (double)uVar11 / (double)DAT_002a7fec" identifier = (binary_expression "(double)uVar11 / (double)DAT_002a7fec" (cast_expression "(double)uVar11" ( (type_descriptor "double" primitive_type) ) identifier) / (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                fVar16 = ReadBlobFloat(image);\n                pPVar12 = image->channel_map;\n                dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L391;" case number_literal : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "dVar14 = (double)fVar16 * (double)DAT_0029f710;" (assignment_expression "dVar14 = (double)fVar16 * (double)DAT_0029f710" identifier = (binary_expression "(double)fVar16 * (double)DAT_0029f710" (cast_expression "(double)fVar16" ( (type_descriptor "double" primitive_type) ) identifier) * (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;" if (parenthesized_expression "(pPVar12[5].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar12[5].traits != UndefinedPixelTrait" (field_expression "pPVar12[5].traits" (subscript_expression "pPVar12[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (goto_statement "goto LAB_0028cba5;" goto statement_identifier ;)) (goto_statement "goto _L391;" goto statement_identifier ;)) (case_statement "default:\n                if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  dVar14 = 0.0;\n                  goto LAB_0028cba5;\n                }\n                goto LAB_0028c951;" default : (if_statement "if (pPVar12[5].traits != UndefinedPixelTrait) {\n                  dVar14 = 0.0;\n                  goto LAB_0028cba5;\n                }" if (parenthesized_expression "(pPVar12[5].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar12[5].traits != UndefinedPixelTrait" (field_expression "pPVar12[5].traits" (subscript_expression "pPVar12[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n                  dVar14 = 0.0;\n                  goto LAB_0028cba5;\n                }" { (expression_statement "dVar14 = 0.0;" (assignment_expression "dVar14 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_0028cba5;" goto statement_identifier ;) })) (goto_statement "goto LAB_0028c951;" goto statement_identifier ;)) (case_statement "case 8:\n                dVar14 = ReadBlobDouble(image);\n                pPVar12 = image->channel_map;\n                dVar14 = dVar14 * (double)DAT_0029f710;\n                if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n                goto _L392;" case number_literal : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "dVar14 = dVar14 * (double)DAT_0029f710;" (assignment_expression "dVar14 = dVar14 * (double)DAT_0029f710" identifier = (binary_expression "dVar14 * (double)DAT_0029f710" identifier * (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;" if (parenthesized_expression "(pPVar12[5].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar12[5].traits != UndefinedPixelTrait" (field_expression "pPVar12[5].traits" (subscript_expression "pPVar12[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (goto_statement "goto LAB_0028cba5;" goto statement_identifier ;)) (goto_statement "goto _L392;" goto statement_identifier ;)) })) (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (if_statement "if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;" if (parenthesized_expression "(pPVar12[5].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar12[5].traits != UndefinedPixelTrait" (field_expression "pPVar12[5].traits" (subscript_expression "pPVar12[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (goto_statement "goto LAB_0028cba5;" goto statement_identifier ;)) (goto_statement "goto LAB_0028c951;" goto statement_identifier ;) })) (if_statement "if ((uVar8 & 0x20002) == 0) {\n              if (uVar7 == 0) {\n_L445:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L445;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028cbc9;\n            }" if (parenthesized_expression "((uVar8 & 0x20002) == 0)" ( (binary_expression "(uVar8 & 0x20002) == 0" (parenthesized_expression "(uVar8 & 0x20002)" ( (binary_expression "uVar8 & 0x20002" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if (uVar7 == 0) {\n_L445:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L445;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }\n              if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;\n              goto LAB_0028cbc9;\n            }" { (if_statement "if (uVar7 == 0) {\n_L445:\n                dVar14 = 0.0;\n              }\n              else {\n                switch(uVar6) {\n                default:\n                  goto _L445;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n_L445:\n                dVar14 = 0.0;\n              }" { (labeled_statement "_L445:\n                dVar14 = 0.0;" statement_identifier : (expression_statement "dVar14 = 0.0;" (assignment_expression "dVar14 = 0.0" identifier = number_literal) ;)) }) (else_clause "else {\n                switch(uVar6) {\n                default:\n                  goto _L445;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }" else (compound_statement "{\n                switch(uVar6) {\n                default:\n                  goto _L445;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }\n                dVar14 = (double)(uVar11 & 0xffff);\n                pPVar12 = image->channel_map;\n              }" { (switch_statement "switch(uVar6) {\n                default:\n                  goto _L445;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n                default:\n                  goto _L445;\n                case 2:\n                case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;\n                case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;\n                case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);\n                }" { (case_statement "default:\n                  goto _L445;" default : (goto_statement "goto _L445;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  break;" case number_literal : (expression_statement "uVar3 = ReadBlobShort(image);" (assignment_expression "uVar3 = ReadBlobShort(image)" identifier = (call_expression "ReadBlobShort(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)uVar3;" (assignment_expression "uVar11 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                  uVar11 = ReadBlobLong(image);\n                  break;" case number_literal : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                  fVar16 = ReadBlobFloat(image);\n                  uVar11 = (uint)ROUND(fVar16);\n                  break;" case number_literal : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)ROUND(fVar16);" (assignment_expression "uVar11 = (uint)ROUND(fVar16)" identifier = (cast_expression "(uint)ROUND(fVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(fVar16)" identifier (argument_list "(fVar16)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n                  dVar14 = ReadBlobDouble(image);\n                  uVar11 = (uint)ROUND(dVar14);" case number_literal : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)ROUND(dVar14);" (assignment_expression "uVar11 = (uint)ROUND(dVar14)" identifier = (cast_expression "(uint)ROUND(dVar14)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(dVar14)" identifier (argument_list "(dVar14)" ( identifier ))))) ;)) })) (expression_statement "dVar14 = (double)(uVar11 & 0xffff);" (assignment_expression "dVar14 = (double)(uVar11 & 0xffff)" identifier = (cast_expression "(double)(uVar11 & 0xffff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uVar11 & 0xffff)" ( (binary_expression "uVar11 & 0xffff" identifier & number_literal) )))) ;) (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) }))) (if_statement "if (pPVar12[5].traits != UndefinedPixelTrait) goto LAB_0028cba5;" if (parenthesized_expression "(pPVar12[5].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar12[5].traits != UndefinedPixelTrait" (field_expression "pPVar12[5].traits" (subscript_expression "pPVar12[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (goto_statement "goto LAB_0028cba5;" goto statement_identifier ;)) (goto_statement "goto LAB_0028cbc9;" goto statement_identifier ;) })) (switch_statement "switch(uVar6) {\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028cda5;\n            default:\n              dVar14 = 0.0;\n              goto LAB_0028cdc8;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028cda5:\n              uVar11 = (uint)local_103e;\n            }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n            case 0:\n            case 1:\n              uVar11 = ReadBlobByte(image);\n              break;\n            case 2:\n            case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;\n            case 4:\n            case 5:\n              uVar11 = ReadBlobLong(image);\n              break;\n            case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028cda5;\n            default:\n              dVar14 = 0.0;\n              goto LAB_0028cdc8;\n            case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028cda5:\n              uVar11 = (uint)local_103e;\n            }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n              uVar11 = ReadBlobByte(image);\n              break;" case number_literal : (expression_statement "uVar11 = ReadBlobByte(image);" (assignment_expression "uVar11 = ReadBlobByte(image)" identifier = (call_expression "ReadBlobByte(image)" identifier (argument_list "(image)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n              uVar3 = ReadBlobShort(image);\n              uVar11 = (uint)uVar3;\n              break;" case number_literal : (expression_statement "uVar3 = ReadBlobShort(image);" (assignment_expression "uVar3 = ReadBlobShort(image)" identifier = (call_expression "ReadBlobShort(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)uVar3;" (assignment_expression "uVar11 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n              uVar11 = ReadBlobLong(image);\n              break;" case number_literal : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n              fVar16 = ReadBlobFloat(image);\n              local_103e = (ushort)ROUND(fVar16);\n              goto LAB_0028cda5;" case number_literal : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "local_103e = (ushort)ROUND(fVar16);" (assignment_expression "local_103e = (ushort)ROUND(fVar16)" identifier = (cast_expression "(ushort)ROUND(fVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(fVar16)" identifier (argument_list "(fVar16)" ( identifier ))))) ;) (goto_statement "goto LAB_0028cda5;" goto statement_identifier ;)) (case_statement "default:\n              dVar14 = 0.0;\n              goto LAB_0028cdc8;" default : (expression_statement "dVar14 = 0.0;" (assignment_expression "dVar14 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_0028cdc8;" goto statement_identifier ;)) (case_statement "case 8:\n              dVar14 = ReadBlobDouble(image);\n              local_103e = (ushort)ROUND(dVar14);\nLAB_0028cda5:\n              uVar11 = (uint)local_103e;" case number_literal : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "local_103e = (ushort)ROUND(dVar14);" (assignment_expression "local_103e = (ushort)ROUND(dVar14)" identifier = (cast_expression "(ushort)ROUND(dVar14)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(dVar14)" identifier (argument_list "(dVar14)" ( identifier ))))) ;) (labeled_statement "LAB_0028cda5:\n              uVar11 = (uint)local_103e;" statement_identifier : (expression_statement "uVar11 = (uint)local_103e;" (assignment_expression "uVar11 = (uint)local_103e" identifier = (cast_expression "(uint)local_103e" ( (type_descriptor "uint" type_identifier) ) identifier)) ;))) })) (expression_statement "dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;" (assignment_expression "dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0" identifier = (binary_expression "(double)(uVar11 & 0xff) * (double)DAT_002a7ff0" (cast_expression "(double)(uVar11 & 0xff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uVar11 & 0xff)" ( (binary_expression "uVar11 & 0xff" identifier & number_literal) ))) * (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (labeled_statement "LAB_0028cdc8:\n            if (pPVar12[5].traits == UndefinedPixelTrait) {\nLAB_0028cdd5:\n              switch(uVar6) {\n              case 0:\n              case 1:\n_L409:\n                uVar11 = ReadBlobByte(image);\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                break;\n              default:\n                goto _L448;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n              }\n              dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            }\n            else {\nLAB_0028cba5:\n              pQVar9[pPVar12[5].offset] = dVar14;\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;\nLAB_0028cbc9:\n                if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }\n              }\n              else {\nLAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n            }" statement_identifier : (if_statement "if (pPVar12[5].traits == UndefinedPixelTrait) {\nLAB_0028cdd5:\n              switch(uVar6) {\n              case 0:\n              case 1:\n_L409:\n                uVar11 = ReadBlobByte(image);\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                break;\n              default:\n                goto _L448;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n              }\n              dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            }\n            else {\nLAB_0028cba5:\n              pQVar9[pPVar12[5].offset] = dVar14;\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;\nLAB_0028cbc9:\n                if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }\n              }\n              else {\nLAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n            }" if (parenthesized_expression "(pPVar12[5].traits == UndefinedPixelTrait)" ( (binary_expression "pPVar12[5].traits == UndefinedPixelTrait" (field_expression "pPVar12[5].traits" (subscript_expression "pPVar12[5]" identifier [ number_literal ]) . field_identifier) == identifier) )) (compound_statement "{\nLAB_0028cdd5:\n              switch(uVar6) {\n              case 0:\n              case 1:\n_L409:\n                uVar11 = ReadBlobByte(image);\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                break;\n              default:\n                goto _L448;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n              }\n              dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;\n            }" { (labeled_statement "LAB_0028cdd5:\n              switch(uVar6) {\n              case 0:\n              case 1:\n_L409:\n                uVar11 = ReadBlobByte(image);\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                break;\n              default:\n                goto _L448;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n              }" statement_identifier : (switch_statement "switch(uVar6) {\n              case 0:\n              case 1:\n_L409:\n                uVar11 = ReadBlobByte(image);\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                break;\n              default:\n                goto _L448;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n              }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n              case 0:\n              case 1:\n_L409:\n                uVar11 = ReadBlobByte(image);\n                break;\n              case 2:\n              case 3:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;\n              case 4:\n              case 5:\n                uVar11 = ReadBlobLong(image);\n                break;\n              case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                break;\n              default:\n                goto _L448;\n              case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)(ushort)(short)ROUND(dVar14);\n              }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n_L409:\n                uVar11 = ReadBlobByte(image);\n                break;" case number_literal : (labeled_statement "_L409:\n                uVar11 = ReadBlobByte(image);" statement_identifier : (expression_statement "uVar11 = ReadBlobByte(image);" (assignment_expression "uVar11 = ReadBlobByte(image)" identifier = (call_expression "ReadBlobByte(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                uVar3 = ReadBlobShort(image);\n                uVar11 = (uint)uVar3;\n                break;" case number_literal : (expression_statement "uVar3 = ReadBlobShort(image);" (assignment_expression "uVar3 = ReadBlobShort(image)" identifier = (call_expression "ReadBlobShort(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)uVar3;" (assignment_expression "uVar11 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uVar11 = ReadBlobLong(image);\n                break;" case number_literal : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                fVar16 = ReadBlobFloat(image);\n                uVar11 = (uint)(ushort)(short)ROUND(fVar16);\n                break;" case number_literal : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)(ushort)(short)ROUND(fVar16);" (assignment_expression "uVar11 = (uint)(ushort)(short)ROUND(fVar16)" identifier = (cast_expression "(uint)(ushort)(short)ROUND(fVar16)" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(ushort)(short)ROUND(fVar16)" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(short)ROUND(fVar16)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(fVar16)" identifier (argument_list "(fVar16)" ( identifier ))))))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                goto _L448;" default : (goto_statement "goto _L448;" goto statement_identifier ;)) (case_statement "case 8:\n                dVar14 = ReadBlobDouble(image);\n                uVar11 = (uint)(ushort)(short)ROUND(dVar14);" case number_literal : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)(ushort)(short)ROUND(dVar14);" (assignment_expression "uVar11 = (uint)(ushort)(short)ROUND(dVar14)" identifier = (cast_expression "(uint)(ushort)(short)ROUND(dVar14)" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(ushort)(short)ROUND(dVar14)" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(short)ROUND(dVar14)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar14)" identifier (argument_list "(dVar14)" ( identifier ))))))) ;)) }))) (expression_statement "dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0;" (assignment_expression "dVar14 = (double)(uVar11 & 0xff) * (double)DAT_002a7ff0" identifier = (binary_expression "(double)(uVar11 & 0xff) * (double)DAT_002a7ff0" (cast_expression "(double)(uVar11 & 0xff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uVar11 & 0xff)" ( (binary_expression "uVar11 & 0xff" identifier & number_literal) ))) * (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) }) (else_clause "else {\nLAB_0028cba5:\n              pQVar9[pPVar12[5].offset] = dVar14;\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;\nLAB_0028cbc9:\n                if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }\n              }\n              else {\nLAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n            }" else (compound_statement "{\nLAB_0028cba5:\n              pQVar9[pPVar12[5].offset] = dVar14;\n              if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;\nLAB_0028cbc9:\n                if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }\n              }\n              else {\nLAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }\n            }" { (labeled_statement "LAB_0028cba5:\n              pQVar9[pPVar12[5].offset] = dVar14;" statement_identifier : (expression_statement "pQVar9[pPVar12[5].offset] = dVar14;" (assignment_expression "pQVar9[pPVar12[5].offset] = dVar14" (subscript_expression "pQVar9[pPVar12[5].offset]" identifier [ (field_expression "pPVar12[5].offset" (subscript_expression "pPVar12[5]" identifier [ number_literal ]) . field_identifier) ]) = identifier) ;)) (if_statement "if (uVar13 == 0) {\n                if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;\nLAB_0028cbc9:\n                if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }\n              }\n              else {\nLAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;\nLAB_0028cbc9:\n                if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }\n              }" { (if_statement "if ((uVar8 & 0x20002) != 0) goto LAB_0028cdd5;" if (parenthesized_expression "((uVar8 & 0x20002) != 0)" ( (binary_expression "(uVar8 & 0x20002) != 0" (parenthesized_expression "(uVar8 & 0x20002)" ( (binary_expression "uVar8 & 0x20002" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0028cdd5;" goto statement_identifier ;)) (labeled_statement "LAB_0028cbc9:\n                if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }" statement_identifier : (if_statement "if (uVar7 == 0) {\n_L448:\n                  dVar14 = 0.0;\n                }\n                else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n_L448:\n                  dVar14 = 0.0;\n                }" { (labeled_statement "_L448:\n                  dVar14 = 0.0;" statement_identifier : (expression_statement "dVar14 = 0.0;" (assignment_expression "dVar14 = 0.0" identifier = number_literal) ;)) }) (else_clause "else {\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }" else (compound_statement "{\n                  switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }\nLAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);\n                }" { (switch_statement "switch(uVar6) {\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n                  default:\n                    goto _L448;\n                  case 2:\n                  case 3:\n                    goto _L411;\n                  case 4:\n                  case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;\n                  case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;\n                  case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);\n                  }" { (case_statement "default:\n                    goto _L448;" default : (goto_statement "goto _L448;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                    goto _L411;" case number_literal : (goto_statement "goto _L411;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                    uVar11 = ReadBlobLong(image);\n                    break;" case number_literal : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                    fVar16 = ReadBlobFloat(image);\n                    uVar11 = (uint)ROUND(fVar16);\n                    break;" case number_literal : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)ROUND(fVar16);" (assignment_expression "uVar11 = (uint)ROUND(fVar16)" identifier = (cast_expression "(uint)ROUND(fVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(fVar16)" identifier (argument_list "(fVar16)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n                    dVar14 = ReadBlobDouble(image);\n                    uVar11 = (uint)ROUND(dVar14);" case number_literal : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar11 = (uint)ROUND(dVar14);" (assignment_expression "uVar11 = (uint)ROUND(dVar14)" identifier = (cast_expression "(uint)ROUND(dVar14)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(dVar14)" identifier (argument_list "(dVar14)" ( identifier ))))) ;)) })) (labeled_statement "LAB_0028c9a2:\n                  dVar14 = (double)(uVar11 & 0xffff);" statement_identifier : (expression_statement "dVar14 = (double)(uVar11 & 0xffff);" (assignment_expression "dVar14 = (double)(uVar11 & 0xffff)" identifier = (cast_expression "(double)(uVar11 & 0xffff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uVar11 & 0xffff)" ( (binary_expression "uVar11 & 0xffff" identifier & number_literal) )))) ;)) })))) }) (else_clause "else {\nLAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }" else (compound_statement "{\nLAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }\n              }" { (labeled_statement "LAB_0028c951:\n                switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }" statement_identifier : (switch_statement "switch(uVar6) {\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }" switch (parenthesized_expression "(uVar6)" ( identifier )) (compound_statement "{\n                case 0:\n                case 1:\n                  goto _L409;\n                case 2:\n                case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;\n                case 4:\n                case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;\n                case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;\n                default:\n                  goto _L448;\n                case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;\n                }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                  goto _L409;" case number_literal : (goto_statement "goto _L409;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n_L411:\n                  uVar3 = ReadBlobShort(image);\n                  uVar11 = (uint)uVar3;\n                  goto LAB_0028c9a2;" case number_literal : (labeled_statement "_L411:\n                  uVar3 = ReadBlobShort(image);" statement_identifier : (expression_statement "uVar3 = ReadBlobShort(image);" (assignment_expression "uVar3 = ReadBlobShort(image)" identifier = (call_expression "ReadBlobShort(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (expression_statement "uVar11 = (uint)uVar3;" (assignment_expression "uVar11 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_0028c9a2;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                  uVar11 = ReadBlobLong(image);\n                  dVar14 = (double)uVar11 / (double)DAT_002a7fec;\n                  break;" case number_literal : (expression_statement "uVar11 = ReadBlobLong(image);" (assignment_expression "uVar11 = ReadBlobLong(image)" identifier = (call_expression "ReadBlobLong(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "dVar14 = (double)uVar11 / (double)DAT_002a7fec;" (assignment_expression "dVar14 = (double)uVar11 / (double)DAT_002a7fec" identifier = (binary_expression "(double)uVar11 / (double)DAT_002a7fec" (cast_expression "(double)uVar11" ( (type_descriptor "double" primitive_type) ) identifier) / (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n_L391:\n                  fVar16 = ReadBlobFloat(image);\n                  dVar14 = (double)fVar16 * (double)DAT_0029f710;\n                  break;" case number_literal : (labeled_statement "_L391:\n                  fVar16 = ReadBlobFloat(image);" statement_identifier : (expression_statement "fVar16 = ReadBlobFloat(image);" (assignment_expression "fVar16 = ReadBlobFloat(image)" identifier = (call_expression "ReadBlobFloat(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (expression_statement "dVar14 = (double)fVar16 * (double)DAT_0029f710;" (assignment_expression "dVar14 = (double)fVar16 * (double)DAT_0029f710" identifier = (binary_expression "(double)fVar16 * (double)DAT_0029f710" (cast_expression "(double)fVar16" ( (type_descriptor "double" primitive_type) ) identifier) * (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                  goto _L448;" default : (goto_statement "goto _L448;" goto statement_identifier ;)) (case_statement "case 8:\n_L392:\n                  dVar14 = ReadBlobDouble(image);\n                  dVar14 = dVar14 * (double)DAT_0029f710;" case number_literal : (labeled_statement "_L392:\n                  dVar14 = ReadBlobDouble(image);" statement_identifier : (expression_statement "dVar14 = ReadBlobDouble(image);" (assignment_expression "dVar14 = ReadBlobDouble(image)" identifier = (call_expression "ReadBlobDouble(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (expression_statement "dVar14 = dVar14 * (double)DAT_0029f710;" (assignment_expression "dVar14 = dVar14 * (double)DAT_0029f710" identifier = (binary_expression "dVar14 * (double)DAT_0029f710" identifier * (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;)) }))) }))) })))) (expression_statement "pPVar12 = image->channel_map;" (assignment_expression "pPVar12 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (labeled_statement "LAB_0028c1d8:\n            if (pPVar12[4].traits != UndefinedPixelTrait) {\n              pQVar9[pPVar12[4].offset] = dVar14;\n            }" statement_identifier : (if_statement "if (pPVar12[4].traits != UndefinedPixelTrait) {\n              pQVar9[pPVar12[4].offset] = dVar14;\n            }" if (parenthesized_expression "(pPVar12[4].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar12[4].traits != UndefinedPixelTrait" (field_expression "pPVar12[4].traits" (subscript_expression "pPVar12[4]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n              pQVar9[pPVar12[4].offset] = dVar14;\n            }" { (expression_statement "pQVar9[pPVar12[4].offset] = dVar14;" (assignment_expression "pQVar9[pPVar12[4].offset] = dVar14" (subscript_expression "pQVar9[pPVar12[4].offset]" identifier [ (field_expression "pPVar12[4].offset" (subscript_expression "pPVar12[4]" identifier [ number_literal ]) . field_identifier) ]) = identifier) ;) }))) (labeled_statement "LAB_0028bc60:\n            local_106c = local_106c + 1;" statement_identifier : (expression_statement "local_106c = local_106c + 1;" (assignment_expression "local_106c = local_106c + 1" identifier = (binary_expression "local_106c + 1" identifier + number_literal)) ;)) (expression_statement "pQVar9 = pQVar9 + image->number_channels;" (assignment_expression "pQVar9 = pQVar9 + image->number_channels" identifier = (binary_expression "pQVar9 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) }) while (parenthesized_expression "(local_106c < (int)image->columns)" ( (binary_expression "local_106c < (int)image->columns" identifier < (cast_expression "(int)image->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image->columns" identifier -> field_identifier))) )) ;) })) (expression_statement "MVar4 = SyncAuthenticPixels(image,exception);" (assignment_expression "MVar4 = SyncAuthenticPixels(image,exception)" identifier = (call_expression "SyncAuthenticPixels(image,exception)" identifier (argument_list "(image,exception)" ( identifier , identifier )))) ;) (if_statement "if (MVar4 == MagickFalse) goto LAB_0028c2d0;" if (parenthesized_expression "(MVar4 == MagickFalse)" ( (binary_expression "MVar4 == MagickFalse" identifier == identifier) )) (goto_statement "goto LAB_0028c2d0;" goto statement_identifier ;)) (expression_statement "local_1058 = local_1058 + 1;" (assignment_expression "local_1058 = local_1058 + 1" identifier = (binary_expression "local_1058 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_1058 < (int)image->rows)" ( (binary_expression "local_1058 < (int)image->rows" identifier < (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier))) )) ;) })) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (labeled_statement "LAB_0028c2d7:\n    metadata = (char *)0x0;" statement_identifier : (expression_statement "metadata = (char *)0x0;" (assignment_expression "metadata = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (while_statement "while (sVar10 = ReadBlob(image,0xfff,buffer), sVar10 != 0) {\n      buffer[sVar10] = '\0';\n      if (metadata == (char *)0x0) {\n        metadata = ConstantString(buffer);\n      }\n      else {\n        ConcatenateString(&metadata,buffer);\n      }\n    }" while (parenthesized_expression "(sVar10 = ReadBlob(image,0xfff,buffer), sVar10 != 0)" ( (comma_expression "sVar10 = ReadBlob(image,0xfff,buffer), sVar10 != 0" (assignment_expression "sVar10 = ReadBlob(image,0xfff,buffer)" identifier = (call_expression "ReadBlob(image,0xfff,buffer)" identifier (argument_list "(image,0xfff,buffer)" ( identifier , number_literal , identifier )))) , (binary_expression "sVar10 != 0" identifier != number_literal)) )) (compound_statement "{\n      buffer[sVar10] = '\0';\n      if (metadata == (char *)0x0) {\n        metadata = ConstantString(buffer);\n      }\n      else {\n        ConcatenateString(&metadata,buffer);\n      }\n    }" { (expression_statement "buffer[sVar10] = '\0';" (assignment_expression "buffer[sVar10] = '\0'" (subscript_expression "buffer[sVar10]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (metadata == (char *)0x0) {\n        metadata = ConstantString(buffer);\n      }\n      else {\n        ConcatenateString(&metadata,buffer);\n      }" if (parenthesized_expression "(metadata == (char *)0x0)" ( (binary_expression "metadata == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        metadata = ConstantString(buffer);\n      }" { (expression_statement "metadata = ConstantString(buffer);" (assignment_expression "metadata = ConstantString(buffer)" identifier = (call_expression "ConstantString(buffer)" identifier (argument_list "(buffer)" ( identifier )))) ;) }) (else_clause "else {\n        ConcatenateString(&metadata,buffer);\n      }" else (compound_statement "{\n        ConcatenateString(&metadata,buffer);\n      }" { (expression_statement "ConcatenateString(&metadata,buffer);" (call_expression "ConcatenateString(&metadata,buffer)" identifier (argument_list "(&metadata,buffer)" ( (pointer_expression "&metadata" & identifier) , identifier ))) ;) }))) })) (if_statement "if (metadata != (char *)0x0) {\n      SetImageProperty(image,"vips:metadata",metadata,exception);\n      metadata = (char *)RelinquishMagickMemory(metadata);\n    }" if (parenthesized_expression "(metadata != (char *)0x0)" ( (binary_expression "metadata != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      SetImageProperty(image,"vips:metadata",metadata,exception);\n      metadata = (char *)RelinquishMagickMemory(metadata);\n    }" { (expression_statement "SetImageProperty(image,"vips:metadata",metadata,exception);" (call_expression "SetImageProperty(image,"vips:metadata",metadata,exception)" identifier (argument_list "(image,"vips:metadata",metadata,exception)" ( identifier , (string_literal ""vips:metadata"" " string_content ") , identifier , identifier ))) ;) (expression_statement "metadata = (char *)RelinquishMagickMemory(metadata);" (assignment_expression "metadata = (char *)RelinquishMagickMemory(metadata)" identifier = (cast_expression "(char *)RelinquishMagickMemory(metadata)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "RelinquishMagickMemory(metadata)" identifier (argument_list "(metadata)" ( identifier ))))) ;) })) (expression_statement "CloseBlob(image);" (call_expression "CloseBlob(image)" identifier (argument_list "(image)" ( identifier ))) ;) (if_statement "if (bVar2) goto LAB_0028b7fb;" if (parenthesized_expression "(bVar2)" ( identifier )) (goto_statement "goto LAB_0028b7fb;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0028b983:\n    tag = "Unsupported combination of band format and colorspace";\n    line = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (exception,"coders/vips.c","ReadVIPSImage",line,CoderError,tag,"`%s\'",\n               image_info->filename);\nLAB_0028b7e8:\n    CloseBlob(image);\n    DestroyImageList(image);\n  }" else (compound_statement "{\nLAB_0028b983:\n    tag = "Unsupported combination of band format and colorspace";\n    line = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (exception,"coders/vips.c","ReadVIPSImage",line,CoderError,tag,"`%s\'",\n               image_info->filename);\nLAB_0028b7e8:\n    CloseBlob(image);\n    DestroyImageList(image);\n  }" { (labeled_statement "LAB_0028b983:\n    tag = "Unsupported combination of band format and colorspace";" statement_identifier : (expression_statement "tag = "Unsupported combination of band format and colorspace";" (assignment_expression "tag = "Unsupported combination of band format and colorspace"" identifier = (string_literal ""Unsupported combination of band format and colorspace"" " string_content ")) ;)) (expression_statement "line = 0x1f2;" (assignment_expression "line = 0x1f2" identifier = number_literal) ;) (labeled_statement "LAB_0028b9a2:\n    ThrowMagickException\n              (exception,"coders/vips.c","ReadVIPSImage",line,CoderError,tag,"`%s\'",\n               image_info->filename);" statement_identifier : (expression_statement "ThrowMagickException\n              (exception,"coders/vips.c","ReadVIPSImage",line,CoderError,tag,"`%s\'",\n               image_info->filename);" (call_expression "ThrowMagickException\n              (exception,"coders/vips.c","ReadVIPSImage",line,CoderError,tag,"`%s\'",\n               image_info->filename)" identifier (argument_list "(exception,"coders/vips.c","ReadVIPSImage",line,CoderError,tag,"`%s\'",\n               image_info->filename)" ( identifier , (string_literal ""coders/vips.c"" " string_content ") , (string_literal ""ReadVIPSImage"" " string_content ") , identifier , identifier , identifier , (string_literal ""`%s\'"" " string_content escape_sequence ") , (field_expression "image_info->filename" identifier -> field_identifier) ))) ;)) (labeled_statement "LAB_0028b7e8:\n    CloseBlob(image);" statement_identifier : (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 ))) ;) }))) (labeled_statement "LAB_0028b7f9:\n  image = (Image *)0x0;" statement_identifier : (expression_statement "image = (Image *)0x0;" (assignment_expression "image = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_0028b7fb:\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return image;\n  }" statement_identifier : (if_statement "if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return image;\n  }" if (parenthesized_expression "(iVar1 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return image;\n  }" { (return_statement "return image;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int FUN_0028b670(int param_1,int param_2)\n\n{\n  double dVar1;\n  float fVar2;\n  bool bVar3;\n  byte bVar4;\n  ushort uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  int iVar14;\n  uint uVar15;\n  int in_GS_OFFSET;\n  longdouble lVar16;\n  char *pcVar17;\n  int local_106c;\n  int iStack_1058;\n  ushort uStack_103e;\n  uint uStack_103c;\n  int iStack_1024;\n  undefined1 auStack_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x28b679;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");\n  }\n  iVar6 = AcquireImage(param_1,param_2);\n  iVar7 = OpenBlob(param_1,iVar6,2,param_2);\n  if (iVar7 == 0) {\n    DestroyImageList(iVar6);\n    iVar6 = 0;\n    goto LAB_0028b7fb;\n  }\n  iVar7 = ReadBlobLSBLong(iVar6);\n  if (iVar7 != 0x8f2a6b6) {\n    if (iVar7 == -0x49590df8) {\n      *(undefined4 *)(iVar6 + 0x234) = 2;\n      goto LAB_0028b739;\n    }\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0);\n    if (iVar6 != 0) goto LAB_0028b7e8;\n    goto LAB_0028b7f9;\n  }\n  *(undefined4 *)(iVar6 + 0x234) = 1;\nLAB_0028b739:\n  uVar8 = ReadBlobLong(iVar6);\n  *(undefined4 *)(iVar6 + 0x18) = uVar8;\n  uVar8 = ReadBlobLong(iVar6);\n  *(undefined4 *)(iVar6 + 0x1c) = uVar8;\n  iVar7 = SetImageExtent(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2);\n  if (iVar7 == 0) {\n    iVar6 = DestroyImageList(iVar6);\n    goto LAB_0028b7fb;\n  }\n  uVar9 = ReadBlobLong(iVar6);\n  ReadBlobLong(iVar6);\n  uVar10 = ReadBlobLong(iVar6);\n  switch(uVar10) {\n  case 0:\n  case 1:\n    *(undefined4 *)(iVar6 + 0x20) = 8;\n    break;\n  case 2:\n  case 3:\n    *(undefined4 *)(iVar6 + 0x20) = 0x10;\n    break;\n  case 4:\n  case 5:\n  case 6:\n    *(undefined4 *)(iVar6 + 0x20) = 0x20;\n    break;\n  default:\n    pcVar17 = "Unsupported band format";\n    uVar8 = 0x1bb;\n    goto LAB_0028b9a2;\n  case 8:\n    *(undefined4 *)(iVar6 + 0x20) = 0x40;\n  }\n  iVar7 = ReadBlobLong(iVar6);\n  uVar11 = ReadBlobLong(iVar6);\n  switch(uVar11) {\n  default:\n    pcVar17 = "Unsupported colorspace";\n    uVar8 = 0x1e2;\n    goto LAB_0028b9a2;\n  case 1:\n  case 0x1a:\n    SetImageColorspace(iVar6,3,param_2);\n    if (uVar9 == 2) {\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    break;\n  case 0xf:\n    SetImageColorspace(iVar6,2,param_2);\n    if (uVar9 == 5) {\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    goto code_r0x0028b9e4;\n  case 0x11:\n  case 0x19:\n    SetImageColorspace(iVar6,0x15,param_2);\n    if (uVar9 == 4) goto code_r0x0028bb8c;\n    break;\n  case 0x16:\n    SetImageColorspace(iVar6,0x17,param_2);\n    if (uVar9 == 4) goto code_r0x0028bbbc;\ncode_r0x0028b9e4:\n    SetImageBackgroundColor(iVar6,param_2);\n    *(undefined4 *)(iVar6 + 0x1dc) = 2;\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    fVar2 = DAT_002aa50c;\n    *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n    goto code_r0x0028ba52;\n  }\n  SetImageBackgroundColor(iVar6,param_2);\n  *(undefined4 *)(iVar6 + 0x1dc) = 2;\n  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n  fVar2 = DAT_002aa50c;\n  *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n  *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n  ReadBlobLongLong(iVar6);\n  ReadBlobLongLong(iVar6);\n  ReadBlobLongLong(iVar6);\n  if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n  if (uVar11 < 0x1b) {\ncode_r0x0028ba52:\n    uVar11 = 1 << ((byte)uVar11 & 0x1f);\n    if (((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))) goto code_r0x0028b983;\n    if (4 < uVar9 - 1) {\n      pcVar17 = "Unsupported number of channels";\n      uVar8 = 500;\n      goto LAB_0028b9a2;\n    }\n    if (iVar7 != 0) {\n      pcVar17 = "Unsupported coding";\n      uVar8 = 0x1f8;\n      goto LAB_0028b9a2;\n    }\n    if (0 < *(int *)(iVar6 + 0x1c)) {\n      iStack_1058 = 0;\n      do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));\n    }\n    bVar3 = true;\ncode_r0x0028c2d7:\n    iStack_1024 = 0;\n    while (iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0) {\n      auStack_1020[iVar7] = 0;\n      if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }\n    }\n    if (iStack_1024 != 0) {\n      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);\n      iStack_1024 = RelinquishMagickMemory(iStack_1024);\n    }\n    CloseBlob(iVar6);\n    if (bVar3) goto LAB_0028b7fb;\n  }\n  else {\ncode_r0x0028b983:\n    pcVar17 = "Unsupported combination of band format and colorspace";\n    uVar8 = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;\nLAB_0028b7e8:\n    CloseBlob(iVar6);\n    DestroyImageList(iVar6);\n  }\nLAB_0028b7f9:\n  iVar6 = 0;\nLAB_0028b7fb:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar6;\n  }\n                    \n  FUN_0029eab0();\n}\n\n" (function_definition "int FUN_0028b670(int param_1,int param_2)\n\n{\n  double dVar1;\n  float fVar2;\n  bool bVar3;\n  byte bVar4;\n  ushort uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  int iVar14;\n  uint uVar15;\n  int in_GS_OFFSET;\n  longdouble lVar16;\n  char *pcVar17;\n  int local_106c;\n  int iStack_1058;\n  ushort uStack_103e;\n  uint uStack_103c;\n  int iStack_1024;\n  undefined1 auStack_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x28b679;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");\n  }\n  iVar6 = AcquireImage(param_1,param_2);\n  iVar7 = OpenBlob(param_1,iVar6,2,param_2);\n  if (iVar7 == 0) {\n    DestroyImageList(iVar6);\n    iVar6 = 0;\n    goto LAB_0028b7fb;\n  }\n  iVar7 = ReadBlobLSBLong(iVar6);\n  if (iVar7 != 0x8f2a6b6) {\n    if (iVar7 == -0x49590df8) {\n      *(undefined4 *)(iVar6 + 0x234) = 2;\n      goto LAB_0028b739;\n    }\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0);\n    if (iVar6 != 0) goto LAB_0028b7e8;\n    goto LAB_0028b7f9;\n  }\n  *(undefined4 *)(iVar6 + 0x234) = 1;\nLAB_0028b739:\n  uVar8 = ReadBlobLong(iVar6);\n  *(undefined4 *)(iVar6 + 0x18) = uVar8;\n  uVar8 = ReadBlobLong(iVar6);\n  *(undefined4 *)(iVar6 + 0x1c) = uVar8;\n  iVar7 = SetImageExtent(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2);\n  if (iVar7 == 0) {\n    iVar6 = DestroyImageList(iVar6);\n    goto LAB_0028b7fb;\n  }\n  uVar9 = ReadBlobLong(iVar6);\n  ReadBlobLong(iVar6);\n  uVar10 = ReadBlobLong(iVar6);\n  switch(uVar10) {\n  case 0:\n  case 1:\n    *(undefined4 *)(iVar6 + 0x20) = 8;\n    break;\n  case 2:\n  case 3:\n    *(undefined4 *)(iVar6 + 0x20) = 0x10;\n    break;\n  case 4:\n  case 5:\n  case 6:\n    *(undefined4 *)(iVar6 + 0x20) = 0x20;\n    break;\n  default:\n    pcVar17 = "Unsupported band format";\n    uVar8 = 0x1bb;\n    goto LAB_0028b9a2;\n  case 8:\n    *(undefined4 *)(iVar6 + 0x20) = 0x40;\n  }\n  iVar7 = ReadBlobLong(iVar6);\n  uVar11 = ReadBlobLong(iVar6);\n  switch(uVar11) {\n  default:\n    pcVar17 = "Unsupported colorspace";\n    uVar8 = 0x1e2;\n    goto LAB_0028b9a2;\n  case 1:\n  case 0x1a:\n    SetImageColorspace(iVar6,3,param_2);\n    if (uVar9 == 2) {\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    break;\n  case 0xf:\n    SetImageColorspace(iVar6,2,param_2);\n    if (uVar9 == 5) {\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    goto code_r0x0028b9e4;\n  case 0x11:\n  case 0x19:\n    SetImageColorspace(iVar6,0x15,param_2);\n    if (uVar9 == 4) goto code_r0x0028bb8c;\n    break;\n  case 0x16:\n    SetImageColorspace(iVar6,0x17,param_2);\n    if (uVar9 == 4) goto code_r0x0028bbbc;\ncode_r0x0028b9e4:\n    SetImageBackgroundColor(iVar6,param_2);\n    *(undefined4 *)(iVar6 + 0x1dc) = 2;\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    fVar2 = DAT_002aa50c;\n    *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n    goto code_r0x0028ba52;\n  }\n  SetImageBackgroundColor(iVar6,param_2);\n  *(undefined4 *)(iVar6 + 0x1dc) = 2;\n  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n  fVar2 = DAT_002aa50c;\n  *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n  *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n  ReadBlobLongLong(iVar6);\n  ReadBlobLongLong(iVar6);\n  ReadBlobLongLong(iVar6);\n  if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n  if (uVar11 < 0x1b) {\ncode_r0x0028ba52:\n    uVar11 = 1 << ((byte)uVar11 & 0x1f);\n    if (((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))) goto code_r0x0028b983;\n    if (4 < uVar9 - 1) {\n      pcVar17 = "Unsupported number of channels";\n      uVar8 = 500;\n      goto LAB_0028b9a2;\n    }\n    if (iVar7 != 0) {\n      pcVar17 = "Unsupported coding";\n      uVar8 = 0x1f8;\n      goto LAB_0028b9a2;\n    }\n    if (0 < *(int *)(iVar6 + 0x1c)) {\n      iStack_1058 = 0;\n      do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));\n    }\n    bVar3 = true;\ncode_r0x0028c2d7:\n    iStack_1024 = 0;\n    while (iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0) {\n      auStack_1020[iVar7] = 0;\n      if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }\n    }\n    if (iStack_1024 != 0) {\n      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);\n      iStack_1024 = RelinquishMagickMemory(iStack_1024);\n    }\n    CloseBlob(iVar6);\n    if (bVar3) goto LAB_0028b7fb;\n  }\n  else {\ncode_r0x0028b983:\n    pcVar17 = "Unsupported combination of band format and colorspace";\n    uVar8 = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;\nLAB_0028b7e8:\n    CloseBlob(iVar6);\n    DestroyImageList(iVar6);\n  }\nLAB_0028b7f9:\n  iVar6 = 0;\nLAB_0028b7fb:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar6;\n  }\n                    \n  FUN_0029eab0();\n}" primitive_type (function_declarator "FUN_0028b670(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  double dVar1;\n  float fVar2;\n  bool bVar3;\n  byte bVar4;\n  ushort uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  int iVar14;\n  uint uVar15;\n  int in_GS_OFFSET;\n  longdouble lVar16;\n  char *pcVar17;\n  int local_106c;\n  int iStack_1058;\n  ushort uStack_103e;\n  uint uStack_103c;\n  int iStack_1024;\n  undefined1 auStack_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x28b679;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");\n  }\n  iVar6 = AcquireImage(param_1,param_2);\n  iVar7 = OpenBlob(param_1,iVar6,2,param_2);\n  if (iVar7 == 0) {\n    DestroyImageList(iVar6);\n    iVar6 = 0;\n    goto LAB_0028b7fb;\n  }\n  iVar7 = ReadBlobLSBLong(iVar6);\n  if (iVar7 != 0x8f2a6b6) {\n    if (iVar7 == -0x49590df8) {\n      *(undefined4 *)(iVar6 + 0x234) = 2;\n      goto LAB_0028b739;\n    }\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0);\n    if (iVar6 != 0) goto LAB_0028b7e8;\n    goto LAB_0028b7f9;\n  }\n  *(undefined4 *)(iVar6 + 0x234) = 1;\nLAB_0028b739:\n  uVar8 = ReadBlobLong(iVar6);\n  *(undefined4 *)(iVar6 + 0x18) = uVar8;\n  uVar8 = ReadBlobLong(iVar6);\n  *(undefined4 *)(iVar6 + 0x1c) = uVar8;\n  iVar7 = SetImageExtent(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2);\n  if (iVar7 == 0) {\n    iVar6 = DestroyImageList(iVar6);\n    goto LAB_0028b7fb;\n  }\n  uVar9 = ReadBlobLong(iVar6);\n  ReadBlobLong(iVar6);\n  uVar10 = ReadBlobLong(iVar6);\n  switch(uVar10) {\n  case 0:\n  case 1:\n    *(undefined4 *)(iVar6 + 0x20) = 8;\n    break;\n  case 2:\n  case 3:\n    *(undefined4 *)(iVar6 + 0x20) = 0x10;\n    break;\n  case 4:\n  case 5:\n  case 6:\n    *(undefined4 *)(iVar6 + 0x20) = 0x20;\n    break;\n  default:\n    pcVar17 = "Unsupported band format";\n    uVar8 = 0x1bb;\n    goto LAB_0028b9a2;\n  case 8:\n    *(undefined4 *)(iVar6 + 0x20) = 0x40;\n  }\n  iVar7 = ReadBlobLong(iVar6);\n  uVar11 = ReadBlobLong(iVar6);\n  switch(uVar11) {\n  default:\n    pcVar17 = "Unsupported colorspace";\n    uVar8 = 0x1e2;\n    goto LAB_0028b9a2;\n  case 1:\n  case 0x1a:\n    SetImageColorspace(iVar6,3,param_2);\n    if (uVar9 == 2) {\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    break;\n  case 0xf:\n    SetImageColorspace(iVar6,2,param_2);\n    if (uVar9 == 5) {\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    goto code_r0x0028b9e4;\n  case 0x11:\n  case 0x19:\n    SetImageColorspace(iVar6,0x15,param_2);\n    if (uVar9 == 4) goto code_r0x0028bb8c;\n    break;\n  case 0x16:\n    SetImageColorspace(iVar6,0x17,param_2);\n    if (uVar9 == 4) goto code_r0x0028bbbc;\ncode_r0x0028b9e4:\n    SetImageBackgroundColor(iVar6,param_2);\n    *(undefined4 *)(iVar6 + 0x1dc) = 2;\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    fVar2 = DAT_002aa50c;\n    *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n    goto code_r0x0028ba52;\n  }\n  SetImageBackgroundColor(iVar6,param_2);\n  *(undefined4 *)(iVar6 + 0x1dc) = 2;\n  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n  fVar2 = DAT_002aa50c;\n  *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n  *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n  ReadBlobLongLong(iVar6);\n  ReadBlobLongLong(iVar6);\n  ReadBlobLongLong(iVar6);\n  if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n  if (uVar11 < 0x1b) {\ncode_r0x0028ba52:\n    uVar11 = 1 << ((byte)uVar11 & 0x1f);\n    if (((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))) goto code_r0x0028b983;\n    if (4 < uVar9 - 1) {\n      pcVar17 = "Unsupported number of channels";\n      uVar8 = 500;\n      goto LAB_0028b9a2;\n    }\n    if (iVar7 != 0) {\n      pcVar17 = "Unsupported coding";\n      uVar8 = 0x1f8;\n      goto LAB_0028b9a2;\n    }\n    if (0 < *(int *)(iVar6 + 0x1c)) {\n      iStack_1058 = 0;\n      do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));\n    }\n    bVar3 = true;\ncode_r0x0028c2d7:\n    iStack_1024 = 0;\n    while (iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0) {\n      auStack_1020[iVar7] = 0;\n      if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }\n    }\n    if (iStack_1024 != 0) {\n      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);\n      iStack_1024 = RelinquishMagickMemory(iStack_1024);\n    }\n    CloseBlob(iVar6);\n    if (bVar3) goto LAB_0028b7fb;\n  }\n  else {\ncode_r0x0028b983:\n    pcVar17 = "Unsupported combination of band format and colorspace";\n    uVar8 = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;\nLAB_0028b7e8:\n    CloseBlob(iVar6);\n    DestroyImageList(iVar6);\n  }\nLAB_0028b7f9:\n  iVar6 = 0;\nLAB_0028b7fb:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar6;\n  }\n                    \n  FUN_0029eab0();\n}" { (declaration "double dVar1;" primitive_type identifier ;) (declaration "float fVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "longdouble lVar16;" type_identifier identifier ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "int local_106c;" primitive_type identifier ;) (declaration "int iStack_1058;" primitive_type identifier ;) (declaration "ushort uStack_103e;" type_identifier identifier ;) (declaration "uint uStack_103c;" type_identifier identifier ;) (declaration "int iStack_1024;" primitive_type identifier ;) (declaration "undefined1 auStack_1020 [4096];" type_identifier (array_declarator "auStack_1020 [4096]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x28b679;" (assignment_expression "uStack_14 = 0x28b679" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");\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/vips.c",0x187,"ReadVIPSImage");\n  }" { (expression_statement "__assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");" (call_expression "__assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage")" identifier (argument_list "("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage")" ( (string_literal ""image_info != (const ImageInfo *) NULL"" " string_content ") , (string_literal ""coders/vips.c"" " string_content ") , number_literal , (string_literal ""ReadVIPSImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x31f4) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x31f4) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x31f4)" * (cast_expression "(int *)(param_1 + 0x31f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x31f4)" ( (binary_expression "param_1 + 0x31f4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");\n  }" { (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage")" identifier (argument_list "("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage")" ( (string_literal ""image_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/vips.c"" " string_content ") , number_literal , (string_literal ""ReadVIPSImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x31f0) != 0)" ( (binary_expression "*(int *)(param_1 + 0x31f0) != 0" (pointer_expression "*(int *)(param_1 + 0x31f0)" * (cast_expression "(int *)(param_1 + 0x31f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x31f0)" ( (binary_expression "param_1 + 0x31f0" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0);\n  }" { (expression_statement "LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0);" (call_expression "LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0)" identifier (argument_list "(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0)" ( number_literal , (string_literal ""coders/vips.c"" " string_content ") , (string_literal ""ReadVIPSImage"" " string_content ") , number_literal , (pointer_expression "&DAT_002b6e4e" & identifier) , (binary_expression "param_1 + 0x21f0" identifier + number_literal) ))) ;) })) (if_statement "if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");\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/vips.c",0x18c,"ReadVIPSImage");\n  }" { (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage")" identifier (argument_list "("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage")" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""coders/vips.c"" " string_content ") , number_literal , (string_literal ""ReadVIPSImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_2 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");\n  }" { (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage")" identifier (argument_list "("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage")" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/vips.c"" " string_content ") , number_literal , (string_literal ""ReadVIPSImage"" " string_content ") ))) ;) })) (expression_statement "iVar6 = AcquireImage(param_1,param_2);" (assignment_expression "iVar6 = AcquireImage(param_1,param_2)" identifier = (call_expression "AcquireImage(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (expression_statement "iVar7 = OpenBlob(param_1,iVar6,2,param_2);" (assignment_expression "iVar7 = OpenBlob(param_1,iVar6,2,param_2)" identifier = (call_expression "OpenBlob(param_1,iVar6,2,param_2)" identifier (argument_list "(param_1,iVar6,2,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n    DestroyImageList(iVar6);\n    iVar6 = 0;\n    goto LAB_0028b7fb;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    DestroyImageList(iVar6);\n    iVar6 = 0;\n    goto LAB_0028b7fb;\n  }" { (expression_statement "DestroyImageList(iVar6);" (call_expression "DestroyImageList(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0028b7fb;" goto statement_identifier ;) })) (expression_statement "iVar7 = ReadBlobLSBLong(iVar6);" (assignment_expression "iVar7 = ReadBlobLSBLong(iVar6)" identifier = (call_expression "ReadBlobLSBLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (if_statement "if (iVar7 != 0x8f2a6b6) {\n    if (iVar7 == -0x49590df8) {\n      *(undefined4 *)(iVar6 + 0x234) = 2;\n      goto LAB_0028b739;\n    }\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0);\n    if (iVar6 != 0) goto LAB_0028b7e8;\n    goto LAB_0028b7f9;\n  }" if (parenthesized_expression "(iVar7 != 0x8f2a6b6)" ( (binary_expression "iVar7 != 0x8f2a6b6" identifier != number_literal) )) (compound_statement "{\n    if (iVar7 == -0x49590df8) {\n      *(undefined4 *)(iVar6 + 0x234) = 2;\n      goto LAB_0028b739;\n    }\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0);\n    if (iVar6 != 0) goto LAB_0028b7e8;\n    goto LAB_0028b7f9;\n  }" { (if_statement "if (iVar7 == -0x49590df8) {\n      *(undefined4 *)(iVar6 + 0x234) = 2;\n      goto LAB_0028b739;\n    }" if (parenthesized_expression "(iVar7 == -0x49590df8)" ( (binary_expression "iVar7 == -0x49590df8" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(iVar6 + 0x234) = 2;\n      goto LAB_0028b739;\n    }" { (expression_statement "*(undefined4 *)(iVar6 + 0x234) = 2;" (assignment_expression "*(undefined4 *)(iVar6 + 0x234) = 2" (pointer_expression "*(undefined4 *)(iVar6 + 0x234)" * (cast_expression "(undefined4 *)(iVar6 + 0x234)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x234)" ( (binary_expression "iVar6 + 0x234" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0028b739;" goto statement_identifier ;) })) (expression_statement "ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0);" (call_expression "ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0)" identifier (argument_list "(param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0)" ( identifier , (string_literal ""coders/vips.c"" " string_content ") , (string_literal ""ReadVIPSImage"" " string_content ") , number_literal , number_literal , (string_literal ""ImproperImageHeader"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_1 + 0x21f0" identifier + number_literal) ))) ;) (if_statement "if (iVar6 != 0) goto LAB_0028b7e8;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0028b7e8;" goto statement_identifier ;)) (goto_statement "goto LAB_0028b7f9;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(iVar6 + 0x234) = 1;" (assignment_expression "*(undefined4 *)(iVar6 + 0x234) = 1" (pointer_expression "*(undefined4 *)(iVar6 + 0x234)" * (cast_expression "(undefined4 *)(iVar6 + 0x234)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x234)" ( (binary_expression "iVar6 + 0x234" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0028b739:\n  uVar8 = ReadBlobLong(iVar6);" statement_identifier : (expression_statement "uVar8 = ReadBlobLong(iVar6);" (assignment_expression "uVar8 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (expression_statement "*(undefined4 *)(iVar6 + 0x18) = uVar8;" (assignment_expression "*(undefined4 *)(iVar6 + 0x18) = uVar8" (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" * (cast_expression "(undefined4 *)(iVar6 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar8 = ReadBlobLong(iVar6);" (assignment_expression "uVar8 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x1c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar6 + 0x1c) = uVar8" (pointer_expression "*(undefined4 *)(iVar6 + 0x1c)" * (cast_expression "(undefined4 *)(iVar6 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = SetImageExtent(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2);" (assignment_expression "iVar7 = SetImageExtent(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2)" identifier = (call_expression "SetImageExtent(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2)" identifier (argument_list "(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2)" ( identifier , (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" * (cast_expression "(undefined4 *)(iVar6 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) , identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n    iVar6 = DestroyImageList(iVar6);\n    goto LAB_0028b7fb;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar6 = DestroyImageList(iVar6);\n    goto LAB_0028b7fb;\n  }" { (expression_statement "iVar6 = DestroyImageList(iVar6);" (assignment_expression "iVar6 = DestroyImageList(iVar6)" identifier = (call_expression "DestroyImageList(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (goto_statement "goto LAB_0028b7fb;" goto statement_identifier ;) })) (expression_statement "uVar9 = ReadBlobLong(iVar6);" (assignment_expression "uVar9 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "ReadBlobLong(iVar6);" (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (expression_statement "uVar10 = ReadBlobLong(iVar6);" (assignment_expression "uVar10 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (switch_statement "switch(uVar10) {\n  case 0:\n  case 1:\n    *(undefined4 *)(iVar6 + 0x20) = 8;\n    break;\n  case 2:\n  case 3:\n    *(undefined4 *)(iVar6 + 0x20) = 0x10;\n    break;\n  case 4:\n  case 5:\n  case 6:\n    *(undefined4 *)(iVar6 + 0x20) = 0x20;\n    break;\n  default:\n    pcVar17 = "Unsupported band format";\n    uVar8 = 0x1bb;\n    goto LAB_0028b9a2;\n  case 8:\n    *(undefined4 *)(iVar6 + 0x20) = 0x40;\n  }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n  case 0:\n  case 1:\n    *(undefined4 *)(iVar6 + 0x20) = 8;\n    break;\n  case 2:\n  case 3:\n    *(undefined4 *)(iVar6 + 0x20) = 0x10;\n    break;\n  case 4:\n  case 5:\n  case 6:\n    *(undefined4 *)(iVar6 + 0x20) = 0x20;\n    break;\n  default:\n    pcVar17 = "Unsupported band format";\n    uVar8 = 0x1bb;\n    goto LAB_0028b9a2;\n  case 8:\n    *(undefined4 *)(iVar6 + 0x20) = 0x40;\n  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n    *(undefined4 *)(iVar6 + 0x20) = 8;\n    break;" case number_literal : (expression_statement "*(undefined4 *)(iVar6 + 0x20) = 8;" (assignment_expression "*(undefined4 *)(iVar6 + 0x20) = 8" (pointer_expression "*(undefined4 *)(iVar6 + 0x20)" * (cast_expression "(undefined4 *)(iVar6 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n    *(undefined4 *)(iVar6 + 0x20) = 0x10;\n    break;" case number_literal : (expression_statement "*(undefined4 *)(iVar6 + 0x20) = 0x10;" (assignment_expression "*(undefined4 *)(iVar6 + 0x20) = 0x10" (pointer_expression "*(undefined4 *)(iVar6 + 0x20)" * (cast_expression "(undefined4 *)(iVar6 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:" case number_literal :) (case_statement "case 6:\n    *(undefined4 *)(iVar6 + 0x20) = 0x20;\n    break;" case number_literal : (expression_statement "*(undefined4 *)(iVar6 + 0x20) = 0x20;" (assignment_expression "*(undefined4 *)(iVar6 + 0x20) = 0x20" (pointer_expression "*(undefined4 *)(iVar6 + 0x20)" * (cast_expression "(undefined4 *)(iVar6 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n    pcVar17 = "Unsupported band format";\n    uVar8 = 0x1bb;\n    goto LAB_0028b9a2;" default : (expression_statement "pcVar17 = "Unsupported band format";" (assignment_expression "pcVar17 = "Unsupported band format"" identifier = (string_literal ""Unsupported band format"" " string_content ")) ;) (expression_statement "uVar8 = 0x1bb;" (assignment_expression "uVar8 = 0x1bb" identifier = number_literal) ;) (goto_statement "goto LAB_0028b9a2;" goto statement_identifier ;)) (case_statement "case 8:\n    *(undefined4 *)(iVar6 + 0x20) = 0x40;" case number_literal : (expression_statement "*(undefined4 *)(iVar6 + 0x20) = 0x40;" (assignment_expression "*(undefined4 *)(iVar6 + 0x20) = 0x40" (pointer_expression "*(undefined4 *)(iVar6 + 0x20)" * (cast_expression "(undefined4 *)(iVar6 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" identifier + number_literal) )))) = number_literal) ;)) })) (expression_statement "iVar7 = ReadBlobLong(iVar6);" (assignment_expression "iVar7 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "uVar11 = ReadBlobLong(iVar6);" (assignment_expression "uVar11 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (switch_statement "switch(uVar11) {\n  default:\n    pcVar17 = "Unsupported colorspace";\n    uVar8 = 0x1e2;\n    goto LAB_0028b9a2;\n  case 1:\n  case 0x1a:\n    SetImageColorspace(iVar6,3,param_2);\n    if (uVar9 == 2) {\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    break;\n  case 0xf:\n    SetImageColorspace(iVar6,2,param_2);\n    if (uVar9 == 5) {\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    goto code_r0x0028b9e4;\n  case 0x11:\n  case 0x19:\n    SetImageColorspace(iVar6,0x15,param_2);\n    if (uVar9 == 4) goto code_r0x0028bb8c;\n    break;\n  case 0x16:\n    SetImageColorspace(iVar6,0x17,param_2);\n    if (uVar9 == 4) goto code_r0x0028bbbc;\ncode_r0x0028b9e4:\n    SetImageBackgroundColor(iVar6,param_2);\n    *(undefined4 *)(iVar6 + 0x1dc) = 2;\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    fVar2 = DAT_002aa50c;\n    *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n    goto code_r0x0028ba52;\n  }" switch (parenthesized_expression "(uVar11)" ( identifier )) (compound_statement "{\n  default:\n    pcVar17 = "Unsupported colorspace";\n    uVar8 = 0x1e2;\n    goto LAB_0028b9a2;\n  case 1:\n  case 0x1a:\n    SetImageColorspace(iVar6,3,param_2);\n    if (uVar9 == 2) {\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    break;\n  case 0xf:\n    SetImageColorspace(iVar6,2,param_2);\n    if (uVar9 == 5) {\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    goto code_r0x0028b9e4;\n  case 0x11:\n  case 0x19:\n    SetImageColorspace(iVar6,0x15,param_2);\n    if (uVar9 == 4) goto code_r0x0028bb8c;\n    break;\n  case 0x16:\n    SetImageColorspace(iVar6,0x17,param_2);\n    if (uVar9 == 4) goto code_r0x0028bbbc;\ncode_r0x0028b9e4:\n    SetImageBackgroundColor(iVar6,param_2);\n    *(undefined4 *)(iVar6 + 0x1dc) = 2;\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    fVar2 = DAT_002aa50c;\n    *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n    goto code_r0x0028ba52;\n  }" { (case_statement "default:\n    pcVar17 = "Unsupported colorspace";\n    uVar8 = 0x1e2;\n    goto LAB_0028b9a2;" default : (expression_statement "pcVar17 = "Unsupported colorspace";" (assignment_expression "pcVar17 = "Unsupported colorspace"" identifier = (string_literal ""Unsupported colorspace"" " string_content ")) ;) (expression_statement "uVar8 = 0x1e2;" (assignment_expression "uVar8 = 0x1e2" identifier = number_literal) ;) (goto_statement "goto LAB_0028b9a2;" goto statement_identifier ;)) (case_statement "case 1:" case number_literal :) (case_statement "case 0x1a:\n    SetImageColorspace(iVar6,3,param_2);\n    if (uVar9 == 2) {\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    break;" case number_literal : (expression_statement "SetImageColorspace(iVar6,3,param_2);" (call_expression "SetImageColorspace(iVar6,3,param_2)" identifier (argument_list "(iVar6,3,param_2)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (uVar9 == 2) {\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }" if (parenthesized_expression "(uVar9 == 2)" ( (binary_expression "uVar9 == 2" identifier == number_literal) )) (compound_statement "{\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }" { (labeled_statement "code_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;" statement_identifier : (expression_statement "*(undefined4 *)(iVar6 + 0x294) = 4;" (assignment_expression "*(undefined4 *)(iVar6 + 0x294) = 4" (pointer_expression "*(undefined4 *)(iVar6 + 0x294)" * (cast_expression "(undefined4 *)(iVar6 + 0x294)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x294)" ( (binary_expression "iVar6 + 0x294" identifier + number_literal) )))) = number_literal) ;)) })) (break_statement "break;" break ;)) (case_statement "case 0xf:\n    SetImageColorspace(iVar6,2,param_2);\n    if (uVar9 == 5) {\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    goto code_r0x0028b9e4;" case number_literal : (expression_statement "SetImageColorspace(iVar6,2,param_2);" (call_expression "SetImageColorspace(iVar6,2,param_2)" identifier (argument_list "(iVar6,2,param_2)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (uVar9 == 5) {\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }" if (parenthesized_expression "(uVar9 == 5)" ( (binary_expression "uVar9 == 5" identifier == number_literal) )) (compound_statement "{\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }" { (labeled_statement "code_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;" statement_identifier : (expression_statement "*(undefined4 *)(iVar6 + 0x294) = 4;" (assignment_expression "*(undefined4 *)(iVar6 + 0x294) = 4" (pointer_expression "*(undefined4 *)(iVar6 + 0x294)" * (cast_expression "(undefined4 *)(iVar6 + 0x294)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x294)" ( (binary_expression "iVar6 + 0x294" identifier + number_literal) )))) = number_literal) ;)) })) (goto_statement "goto code_r0x0028b9e4;" goto statement_identifier ;)) (case_statement "case 0x11:" case number_literal :) (case_statement "case 0x19:\n    SetImageColorspace(iVar6,0x15,param_2);\n    if (uVar9 == 4) goto code_r0x0028bb8c;\n    break;" case number_literal : (expression_statement "SetImageColorspace(iVar6,0x15,param_2);" (call_expression "SetImageColorspace(iVar6,0x15,param_2)" identifier (argument_list "(iVar6,0x15,param_2)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (uVar9 == 4) goto code_r0x0028bb8c;" if (parenthesized_expression "(uVar9 == 4)" ( (binary_expression "uVar9 == 4" identifier == number_literal) )) (goto_statement "goto code_r0x0028bb8c;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 0x16:\n    SetImageColorspace(iVar6,0x17,param_2);\n    if (uVar9 == 4) goto code_r0x0028bbbc;\ncode_r0x0028b9e4:\n    SetImageBackgroundColor(iVar6,param_2);\n    *(undefined4 *)(iVar6 + 0x1dc) = 2;\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    fVar2 = DAT_002aa50c;\n    *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n    goto code_r0x0028ba52;" case number_literal : (expression_statement "SetImageColorspace(iVar6,0x17,param_2);" (call_expression "SetImageColorspace(iVar6,0x17,param_2)" identifier (argument_list "(iVar6,0x17,param_2)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (uVar9 == 4) goto code_r0x0028bbbc;" if (parenthesized_expression "(uVar9 == 4)" ( (binary_expression "uVar9 == 4" identifier == number_literal) )) (goto_statement "goto code_r0x0028bbbc;" goto statement_identifier ;)) (labeled_statement "code_r0x0028b9e4:\n    SetImageBackgroundColor(iVar6,param_2);" statement_identifier : (expression_statement "SetImageBackgroundColor(iVar6,param_2);" (call_expression "SetImageBackgroundColor(iVar6,param_2)" identifier (argument_list "(iVar6,param_2)" ( identifier , identifier ))) ;)) (expression_statement "*(undefined4 *)(iVar6 + 0x1dc) = 2;" (assignment_expression "*(undefined4 *)(iVar6 + 0x1dc) = 2" (pointer_expression "*(undefined4 *)(iVar6 + 0x1dc)" * (cast_expression "(undefined4 *)(iVar6 + 0x1dc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1dc)" ( (binary_expression "iVar6 + 0x1dc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "fVar2 = DAT_002aa50c;" (assignment_expression "fVar2 = DAT_002aa50c" identifier = identifier) ;) (expression_statement "*(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);" (assignment_expression "*(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c)" (pointer_expression "*(double *)(iVar6 + 0x1f0)" * (cast_expression "(double *)(iVar6 + 0x1f0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1f0)" ( (binary_expression "iVar6 + 0x1f0" identifier + number_literal) )))) = (cast_expression "(double)(lVar16 * (longdouble)DAT_002aa50c)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(lVar16 * (longdouble)DAT_002aa50c)" ( (binary_expression "lVar16 * (longdouble)DAT_002aa50c" identifier * (cast_expression "(longdouble)DAT_002aa50c" ( (type_descriptor "longdouble" type_identifier) ) identifier)) )))) ;) (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "*(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);" (assignment_expression "*(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16)" (pointer_expression "*(double *)(iVar6 + 0x1f8)" * (cast_expression "(double *)(iVar6 + 0x1f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1f8)" ( (binary_expression "iVar6 + 0x1f8" identifier + number_literal) )))) = (cast_expression "(double)((longdouble)fVar2 * lVar16)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((longdouble)fVar2 * lVar16)" ( (binary_expression "(longdouble)fVar2 * lVar16" (cast_expression "(longdouble)fVar2" ( (type_descriptor "longdouble" type_identifier) ) identifier) * identifier) )))) ;) (expression_statement "ReadBlobLongLong(iVar6);" (call_expression "ReadBlobLongLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (expression_statement "ReadBlobLongLong(iVar6);" (call_expression "ReadBlobLongLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (expression_statement "ReadBlobLongLong(iVar6);" (call_expression "ReadBlobLongLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (if_statement "if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;" if (parenthesized_expression "(*(int *)(param_1 + 0x1bc) != 0)" ( (binary_expression "*(int *)(param_1 + 0x1bc) != 0" (pointer_expression "*(int *)(param_1 + 0x1bc)" * (cast_expression "(int *)(param_1 + 0x1bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1bc)" ( (binary_expression "param_1 + 0x1bc" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0028b7fb;" goto statement_identifier ;)) (goto_statement "goto code_r0x0028ba52;" goto statement_identifier ;)) })) (expression_statement "SetImageBackgroundColor(iVar6,param_2);" (call_expression "SetImageBackgroundColor(iVar6,param_2)" identifier (argument_list "(iVar6,param_2)" ( identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x1dc) = 2;" (assignment_expression "*(undefined4 *)(iVar6 + 0x1dc) = 2" (pointer_expression "*(undefined4 *)(iVar6 + 0x1dc)" * (cast_expression "(undefined4 *)(iVar6 + 0x1dc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1dc)" ( (binary_expression "iVar6 + 0x1dc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "fVar2 = DAT_002aa50c;" (assignment_expression "fVar2 = DAT_002aa50c" identifier = identifier) ;) (expression_statement "*(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);" (assignment_expression "*(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c)" (pointer_expression "*(double *)(iVar6 + 0x1f0)" * (cast_expression "(double *)(iVar6 + 0x1f0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1f0)" ( (binary_expression "iVar6 + 0x1f0" identifier + number_literal) )))) = (cast_expression "(double)(lVar16 * (longdouble)DAT_002aa50c)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(lVar16 * (longdouble)DAT_002aa50c)" ( (binary_expression "lVar16 * (longdouble)DAT_002aa50c" identifier * (cast_expression "(longdouble)DAT_002aa50c" ( (type_descriptor "longdouble" type_identifier) ) identifier)) )))) ;) (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "*(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);" (assignment_expression "*(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16)" (pointer_expression "*(double *)(iVar6 + 0x1f8)" * (cast_expression "(double *)(iVar6 + 0x1f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1f8)" ( (binary_expression "iVar6 + 0x1f8" identifier + number_literal) )))) = (cast_expression "(double)((longdouble)fVar2 * lVar16)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((longdouble)fVar2 * lVar16)" ( (binary_expression "(longdouble)fVar2 * lVar16" (cast_expression "(longdouble)fVar2" ( (type_descriptor "longdouble" type_identifier) ) identifier) * identifier) )))) ;) (expression_statement "ReadBlobLongLong(iVar6);" (call_expression "ReadBlobLongLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (expression_statement "ReadBlobLongLong(iVar6);" (call_expression "ReadBlobLongLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (expression_statement "ReadBlobLongLong(iVar6);" (call_expression "ReadBlobLongLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (if_statement "if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;" if (parenthesized_expression "(*(int *)(param_1 + 0x1bc) != 0)" ( (binary_expression "*(int *)(param_1 + 0x1bc) != 0" (pointer_expression "*(int *)(param_1 + 0x1bc)" * (cast_expression "(int *)(param_1 + 0x1bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1bc)" ( (binary_expression "param_1 + 0x1bc" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0028b7fb;" goto statement_identifier ;)) (if_statement "if (uVar11 < 0x1b) {\ncode_r0x0028ba52:\n    uVar11 = 1 << ((byte)uVar11 & 0x1f);\n    if (((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))) goto code_r0x0028b983;\n    if (4 < uVar9 - 1) {\n      pcVar17 = "Unsupported number of channels";\n      uVar8 = 500;\n      goto LAB_0028b9a2;\n    }\n    if (iVar7 != 0) {\n      pcVar17 = "Unsupported coding";\n      uVar8 = 0x1f8;\n      goto LAB_0028b9a2;\n    }\n    if (0 < *(int *)(iVar6 + 0x1c)) {\n      iStack_1058 = 0;\n      do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));\n    }\n    bVar3 = true;\ncode_r0x0028c2d7:\n    iStack_1024 = 0;\n    while (iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0) {\n      auStack_1020[iVar7] = 0;\n      if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }\n    }\n    if (iStack_1024 != 0) {\n      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);\n      iStack_1024 = RelinquishMagickMemory(iStack_1024);\n    }\n    CloseBlob(iVar6);\n    if (bVar3) goto LAB_0028b7fb;\n  }\n  else {\ncode_r0x0028b983:\n    pcVar17 = "Unsupported combination of band format and colorspace";\n    uVar8 = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;\nLAB_0028b7e8:\n    CloseBlob(iVar6);\n    DestroyImageList(iVar6);\n  }" if (parenthesized_expression "(uVar11 < 0x1b)" ( (binary_expression "uVar11 < 0x1b" identifier < number_literal) )) (compound_statement "{\ncode_r0x0028ba52:\n    uVar11 = 1 << ((byte)uVar11 & 0x1f);\n    if (((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))) goto code_r0x0028b983;\n    if (4 < uVar9 - 1) {\n      pcVar17 = "Unsupported number of channels";\n      uVar8 = 500;\n      goto LAB_0028b9a2;\n    }\n    if (iVar7 != 0) {\n      pcVar17 = "Unsupported coding";\n      uVar8 = 0x1f8;\n      goto LAB_0028b9a2;\n    }\n    if (0 < *(int *)(iVar6 + 0x1c)) {\n      iStack_1058 = 0;\n      do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));\n    }\n    bVar3 = true;\ncode_r0x0028c2d7:\n    iStack_1024 = 0;\n    while (iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0) {\n      auStack_1020[iVar7] = 0;\n      if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }\n    }\n    if (iStack_1024 != 0) {\n      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);\n      iStack_1024 = RelinquishMagickMemory(iStack_1024);\n    }\n    CloseBlob(iVar6);\n    if (bVar3) goto LAB_0028b7fb;\n  }" { (labeled_statement "code_r0x0028ba52:\n    uVar11 = 1 << ((byte)uVar11 & 0x1f);" statement_identifier : (expression_statement "uVar11 = 1 << ((byte)uVar11 & 0x1f);" (assignment_expression "uVar11 = 1 << ((byte)uVar11 & 0x1f)" identifier = (binary_expression "1 << ((byte)uVar11 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;)) (if_statement "if (((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))) goto code_r0x0028b983;" if (parenthesized_expression "(((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        )))" ( (binary_expression "((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))" (parenthesized_expression "((uVar11 & 0x428002) == 0)" ( (binary_expression "(uVar11 & 0x428002) == 0" (parenthesized_expression "(uVar11 & 0x428002)" ( (binary_expression "uVar11 & 0x428002" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))" ( (parenthesized_expression "(((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        )" ( (binary_expression "((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)" (parenthesized_expression "((uVar11 & 0x6000000) == 0 || (8 < uVar10))" ( (binary_expression "(uVar11 & 0x6000000) == 0 || (8 < uVar10)" (binary_expression "(uVar11 & 0x6000000) == 0" (parenthesized_expression "(uVar11 & 0x6000000)" ( (binary_expression "uVar11 & 0x6000000" identifier & number_literal) )) == number_literal) || (parenthesized_expression "(8 < uVar10)" ( (binary_expression "8 < uVar10" number_literal < identifier) ))) )) || (parenthesized_expression "((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)" ( (binary_expression "(1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0" (parenthesized_expression "(1 << ((byte)uVar10 & 0x1f) & 0x17cU)" ( (binary_expression "1 << ((byte)uVar10 & 0x1f) & 0x17cU" (binary_expression "1 << ((byte)uVar10 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar10 & 0x1f)" ( (binary_expression "(byte)uVar10 & 0x1f" (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) == number_literal) ))) )) ))) )) (goto_statement "goto code_r0x0028b983;" goto statement_identifier ;)) (if_statement "if (4 < uVar9 - 1) {\n      pcVar17 = "Unsupported number of channels";\n      uVar8 = 500;\n      goto LAB_0028b9a2;\n    }" if (parenthesized_expression "(4 < uVar9 - 1)" ( (binary_expression "4 < uVar9 - 1" number_literal < (binary_expression "uVar9 - 1" identifier - number_literal)) )) (compound_statement "{\n      pcVar17 = "Unsupported number of channels";\n      uVar8 = 500;\n      goto LAB_0028b9a2;\n    }" { (expression_statement "pcVar17 = "Unsupported number of channels";" (assignment_expression "pcVar17 = "Unsupported number of channels"" identifier = (string_literal ""Unsupported number of channels"" " string_content ")) ;) (expression_statement "uVar8 = 500;" (assignment_expression "uVar8 = 500" identifier = number_literal) ;) (goto_statement "goto LAB_0028b9a2;" goto statement_identifier ;) })) (if_statement "if (iVar7 != 0) {\n      pcVar17 = "Unsupported coding";\n      uVar8 = 0x1f8;\n      goto LAB_0028b9a2;\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar17 = "Unsupported coding";\n      uVar8 = 0x1f8;\n      goto LAB_0028b9a2;\n    }" { (expression_statement "pcVar17 = "Unsupported coding";" (assignment_expression "pcVar17 = "Unsupported coding"" identifier = (string_literal ""Unsupported coding"" " string_content ")) ;) (expression_statement "uVar8 = 0x1f8;" (assignment_expression "uVar8 = 0x1f8" identifier = number_literal) ;) (goto_statement "goto LAB_0028b9a2;" goto statement_identifier ;) })) (if_statement "if (0 < *(int *)(iVar6 + 0x1c)) {\n      iStack_1058 = 0;\n      do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));\n    }" if (parenthesized_expression "(0 < *(int *)(iVar6 + 0x1c))" ( (binary_expression "0 < *(int *)(iVar6 + 0x1c)" number_literal < (pointer_expression "*(int *)(iVar6 + 0x1c)" * (cast_expression "(int *)(iVar6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n      iStack_1058 = 0;\n      do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));\n    }" { (expression_statement "iStack_1058 = 0;" (assignment_expression "iStack_1058 = 0" identifier = number_literal) ;) (do_statement "do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));" do (compound_statement "{\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      }" { (expression_statement "iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);" (assignment_expression "iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2)" identifier = (call_expression "GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2)" identifier (argument_list "(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" * (cast_expression "(undefined4 *)(iVar6 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }" { (labeled_statement "code_r0x0028c2d0:\n          bVar3 = false;" statement_identifier : (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;)) (goto_statement "goto code_r0x0028c2d7;" goto statement_identifier ;) })) (if_statement "if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }" if (parenthesized_expression "(0 < *(int *)(iVar6 + 0x18))" ( (binary_expression "0 < *(int *)(iVar6 + 0x18)" number_literal < (pointer_expression "*(int *)(iVar6 + 0x18)" * (cast_expression "(int *)(iVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }" { (expression_statement "uVar12 = uVar11 & 0x6000000;" (assignment_expression "uVar12 = uVar11 & 0x6000000" identifier = (binary_expression "uVar11 & 0x6000000" identifier & number_literal)) ;) (expression_statement "uVar15 = uVar11 & 0x408000;" (assignment_expression "uVar15 = uVar11 & 0x408000" identifier = (binary_expression "uVar11 & 0x408000" identifier & number_literal)) ;) (expression_statement "local_106c = 0;" (assignment_expression "local_106c = 0" identifier = number_literal) ;) (do_statement "do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));" do (compound_statement "{\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          }" { (if_statement "if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }" { (switch_statement "switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;" case number_literal : (expression_statement "bVar4 = ReadBlobByte(iVar6);" (assignment_expression "bVar4 = ReadBlobByte(iVar6)" identifier = (call_expression "ReadBlobByte(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0" identifier = (binary_expression "(longdouble)bVar4 * (longdouble)DAT_002a7ff0" (cast_expression "(longdouble)bVar4" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (cast_expression "(longdouble)DAT_002a7ff0" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;" case number_literal : (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)uVar5;" (assignment_expression "lVar16 = (longdouble)uVar5" identifier = (cast_expression "(longdouble)uVar5" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;" case number_literal : (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" identifier = (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" ( (type_descriptor "longdouble" type_identifier) ) identifier) / (cast_expression "(longdouble)DAT_002a7fec" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;" default : (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;" (assignment_expression "*(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0" (pointer_expression "*(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8)" * (cast_expression "(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 8) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 8) * 8" identifier + (binary_expression "*(int *)(iVar14 + 8) * 8" (pointer_expression "*(int *)(iVar14 + 8)" * (cast_expression "(int *)(iVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) )))) * number_literal)) )))) = number_literal) ;) (if_statement "if (2 < uVar9) goto code_r0x0028bd09;" if (parenthesized_expression "(2 < uVar9)" ( (binary_expression "2 < uVar9" number_literal < identifier) )) (goto_statement "goto code_r0x0028bd09;" goto statement_identifier ;)) (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" identifier = (cast_expression "(longdouble)0" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;) (goto_statement "goto code_r0x0028bc37;" goto statement_identifier ;)) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;)) })) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 8) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 8) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 8) * 8" identifier + (binary_expression "*(int *)(iVar14 + 8) * 8" (pointer_expression "*(int *)(iVar14 + 8)" * (cast_expression "(int *)(iVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)lVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (uVar9 < 3) goto code_r0x0028bc37;" if (parenthesized_expression "(uVar9 < 3)" ( (binary_expression "uVar9 < 3" identifier < number_literal) )) (goto_statement "goto code_r0x0028bc37;" goto statement_identifier ;)) (labeled_statement "code_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" statement_identifier : (switch_statement "switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;" case number_literal : (expression_statement "bVar4 = ReadBlobByte(iVar6);" (assignment_expression "bVar4 = ReadBlobByte(iVar6)" identifier = (call_expression "ReadBlobByte(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0" identifier = (binary_expression "(longdouble)bVar4 * (longdouble)DAT_002a7ff0" (cast_expression "(longdouble)bVar4" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (cast_expression "(longdouble)DAT_002a7ff0" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;" case number_literal : (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)uVar5;" (assignment_expression "lVar16 = (longdouble)uVar5" identifier = (cast_expression "(longdouble)uVar5" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;" case number_literal : (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" identifier = (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" ( (type_descriptor "longdouble" type_identifier) ) identifier) / (cast_expression "(longdouble)DAT_002a7fec" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;" default : (expression_statement "*(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;" (assignment_expression "*(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0" (pointer_expression "*(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" * (cast_expression "(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x14) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar14 + 0x14) * 8" (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) * number_literal)) )))) = number_literal) ;) (goto_statement "goto code_r0x0028be31;" goto statement_identifier ;)) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;)) }))) (expression_statement "*(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8)" ( (binary_expression "iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8" identifier + (binary_expression "*(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(iVar6 + 0x2a8) + 0x14)" * (cast_expression "(int *)(*(int *)(iVar6 + 0x2a8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 0x2a8) + 0x14)" ( (binary_expression "*(int *)(iVar6 + 0x2a8) + 0x14" (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)lVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (labeled_statement "code_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" statement_identifier : (switch_statement "switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                goto code_r0x0028be50;" case number_literal : (goto_statement "goto code_r0x0028be50;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                goto code_r0x0028bed8;" case number_literal : (goto_statement "goto code_r0x0028bed8;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;" case number_literal : (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" identifier = (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" ( (type_descriptor "longdouble" type_identifier) ) identifier) / (cast_expression "(longdouble)DAT_002a7fec" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                goto code_r0x0028c020;" default : (goto_statement "goto code_r0x0028c020;" goto statement_identifier ;)) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;)) }))) (goto_statement "goto code_r0x0028be75;" goto statement_identifier ;) })) (if_statement "if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }" if (parenthesized_expression "((uVar11 & 0x20002) == 0)" ( (binary_expression "(uVar11 & 0x20002) == 0" (parenthesized_expression "(uVar11 & 0x20002)" ( (binary_expression "uVar11 & 0x20002" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }" { (if_statement "if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }" { (labeled_statement "code_r0x0028bc20:\n                lVar16 = (longdouble)0;" statement_identifier : (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" identifier = (cast_expression "(longdouble)0" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;)) (goto_statement "goto code_r0x0028bc22;" goto statement_identifier ;) })) (switch_statement "switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" { (case_statement "default:\n                goto code_r0x0028bc20;" default : (goto_statement "goto code_r0x0028bc20;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;" case number_literal : (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;" case number_literal : (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (goto_statement "goto code_r0x0028c3ba;" goto statement_identifier ;)) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (labeled_statement "code_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);" statement_identifier : (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" identifier = (cast_expression "(uint)ROUND(lVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;))) })) (expression_statement "lVar16 = (longdouble)(uStack_103c & 0xffff);" (assignment_expression "lVar16 = (longdouble)(uStack_103c & 0xffff)" identifier = (call_expression "(longdouble)(uStack_103c & 0xffff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uStack_103c & 0xffff)" ( (binary_expression "uStack_103c & 0xffff" identifier & number_literal) )))) ;) (goto_statement "goto code_r0x0028bc22;" goto statement_identifier ;) })) (switch_statement "switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;" case number_literal : (expression_statement "uStack_103e = ReadBlobByte(iVar6);" (assignment_expression "uStack_103e = ReadBlobByte(iVar6)" identifier = (call_expression "ReadBlobByte(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;" case number_literal : (expression_statement "uStack_103e = ReadBlobShort(iVar6);" (assignment_expression "uStack_103e = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;" case number_literal : (expression_statement "uStack_103e = ReadBlobLong(iVar6);" (assignment_expression "uStack_103e = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (goto_statement "goto code_r0x0028c07a;" goto statement_identifier ;)) (case_statement "default:\n              goto code_r0x0028bc20;" default : (goto_statement "goto code_r0x0028bc20;" goto statement_identifier ;)) (case_statement "case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (labeled_statement "code_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);" statement_identifier : (expression_statement "uStack_103e = (ushort)ROUND(lVar16);" (assignment_expression "uStack_103e = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;))) })) (expression_statement "lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0" identifier = (binary_expression "(longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0" (call_expression "(longdouble)(uStack_103e & 0xff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uStack_103e & 0xff)" ( (binary_expression "uStack_103e & 0xff" identifier & number_literal) ))) * (cast_expression "(longdouble)DAT_002a7ff0" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (labeled_statement "code_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);" statement_identifier : (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;)) (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 8) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 8) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 8) * 8" identifier + (binary_expression "*(int *)(iVar14 + 8) * 8" (pointer_expression "*(int *)(iVar14 + 8)" * (cast_expression "(int *)(iVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)lVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }" if (parenthesized_expression "(uVar9 < 3)" ( (binary_expression "uVar9 < 3" identifier < number_literal) )) (compound_statement "{\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }" { (labeled_statement "code_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;" statement_identifier : (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x14) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar14 + 0x14) * 8" (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)lVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;)) (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x20) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar14 + 0x20) * 8" (pointer_expression "*(int *)(iVar14 + 0x20)" * (cast_expression "(int *)(iVar14 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)lVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }" if (parenthesized_expression "(uVar9 == 2)" ( (binary_expression "uVar9 == 2" identifier == number_literal) )) (compound_statement "{\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }" { (if_statement "if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }" { (switch_statement "switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                    goto code_r0x0028c600;" case number_literal : (goto_statement "goto code_r0x0028c600;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                    goto code_r0x0028c630;" case number_literal : (goto_statement "goto code_r0x0028c630;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                    goto code_r0x0028c6a4;" case number_literal : (goto_statement "goto code_r0x0028c6a4;" goto statement_identifier ;)) (case_statement "case 6:\n                    goto code_r0x0028c67f;" case number_literal : (goto_statement "goto code_r0x0028c67f;" goto statement_identifier ;)) (case_statement "default:\n                    goto code_r0x0028c1d2;" default : (goto_statement "goto code_r0x0028c1d2;" goto statement_identifier ;)) (case_statement "case 8:\n                    goto code_r0x0028c65a;" case number_literal : (goto_statement "goto code_r0x0028c65a;" goto statement_identifier ;)) })) })) (if_statement "if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }" if (parenthesized_expression "((uVar11 & 0x20002) != 0)" ( (binary_expression "(uVar11 & 0x20002) != 0" (parenthesized_expression "(uVar11 & 0x20002)" ( (binary_expression "uVar11 & 0x20002" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }" { (switch_statement "switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                    goto code_r0x0028c600;" case number_literal : (goto_statement "goto code_r0x0028c600;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                    goto code_r0x0028c7e6;" case number_literal : (goto_statement "goto code_r0x0028c7e6;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                    goto code_r0x0028c82c;" case number_literal : (goto_statement "goto code_r0x0028c82c;" goto statement_identifier ;)) (case_statement "case 6:\n                    goto code_r0x0028c7f8;" case number_literal : (goto_statement "goto code_r0x0028c7f8;" goto statement_identifier ;)) (case_statement "default:\n                    goto code_r0x0028c1d2;" default : (goto_statement "goto code_r0x0028c1d2;" goto statement_identifier ;)) (case_statement "case 8:\n                    goto code_r0x0028c83e;" case number_literal : (goto_statement "goto code_r0x0028c83e;" goto statement_identifier ;)) })) })) (if_statement "if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }" { (switch_statement "switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }" { (case_statement "default:\n                    break;" default : (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                    goto code_r0x0028c630;" case number_literal : (goto_statement "goto code_r0x0028c630;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                    goto code_r0x0028ca3d;" case number_literal : (goto_statement "goto code_r0x0028ca3d;" goto statement_identifier ;)) (case_statement "case 6:\n                    goto code_r0x0028ca4f;" case number_literal : (goto_statement "goto code_r0x0028ca4f;" goto statement_identifier ;)) (case_statement "case 8:\n                    goto code_r0x0028ca82;" case number_literal : (goto_statement "goto code_r0x0028ca82;" goto statement_identifier ;)) })) })) (goto_statement "goto code_r0x0028c1d2;" goto statement_identifier ;) })) (goto_statement "goto code_r0x0028bc60;" goto statement_identifier ;) })) (if_statement "if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }" if (parenthesized_expression "((uVar11 & 0x20002) == 0)" ( (binary_expression "(uVar11 & 0x20002) == 0" (parenthesized_expression "(uVar11 & 0x20002)" ( (binary_expression "uVar11 & 0x20002" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }" { (if_statement "if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }" { (labeled_statement "code_r0x0028c180:\n                dVar1 = 0.0;" statement_identifier : (expression_statement "dVar1 = 0.0;" (assignment_expression "dVar1 = 0.0" identifier = number_literal) ;)) (goto_statement "goto code_r0x0028c182;" goto statement_identifier ;) })) (switch_statement "switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" { (case_statement "default:\n                goto code_r0x0028c180;" default : (goto_statement "goto code_r0x0028c180;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;" case number_literal : (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;" case number_literal : (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (goto_statement "goto code_r0x0028c774;" goto statement_identifier ;)) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (labeled_statement "code_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);" statement_identifier : (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" identifier = (cast_expression "(uint)ROUND(lVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;))) })) (expression_statement "dVar1 = (double)(uStack_103c & 0xffff);" (assignment_expression "dVar1 = (double)(uStack_103c & 0xffff)" identifier = (cast_expression "(double)(uStack_103c & 0xffff)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(uStack_103c & 0xffff)" ( (binary_expression "uStack_103c & 0xffff" identifier & number_literal) )))) ;) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (labeled_statement "code_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;" statement_identifier : (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x14) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar14 + 0x14) * 8" (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) * number_literal)) )))) = identifier) ;)) (if_statement "if (uVar12 == 0) goto code_r0x0028c020;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x0028c020;" goto statement_identifier ;)) (switch_statement "switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" { (case_statement "default:\n                goto code_r0x0028c020;" default : (goto_statement "goto code_r0x0028c020;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;" case number_literal : (labeled_statement "code_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);" statement_identifier : (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;" case number_literal : (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (goto_statement "goto code_r0x0028c703;" goto statement_identifier ;)) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (labeled_statement "code_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);" statement_identifier : (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" identifier = (cast_expression "(uint)ROUND(lVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;))) })) (expression_statement "lVar16 = (longdouble)(uStack_103c & 0xffff);" (assignment_expression "lVar16 = (longdouble)(uStack_103c & 0xffff)" identifier = (call_expression "(longdouble)(uStack_103c & 0xffff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uStack_103c & 0xffff)" ( (binary_expression "uStack_103c & 0xffff" identifier & number_literal) )))) ;) (goto_statement "goto code_r0x0028be75;" goto statement_identifier ;) })) (switch_statement "switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;" case number_literal : (expression_statement "uStack_103e = ReadBlobByte(iVar6);" (assignment_expression "uStack_103e = ReadBlobByte(iVar6)" identifier = (call_expression "ReadBlobByte(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;" case number_literal : (expression_statement "uStack_103e = ReadBlobShort(iVar6);" (assignment_expression "uStack_103e = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;" case number_literal : (expression_statement "uStack_103e = ReadBlobLong(iVar6);" (assignment_expression "uStack_103e = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (goto_statement "goto code_r0x0028c4c8;" goto statement_identifier ;)) (case_statement "default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;" default : (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" identifier = number_literal) ;) (goto_statement "goto code_r0x0028c4eb;" goto statement_identifier ;)) (case_statement "case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (labeled_statement "code_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);" statement_identifier : (expression_statement "uStack_103e = (ushort)ROUND(lVar16);" (assignment_expression "uStack_103e = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;))) })) (expression_statement "fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;" (assignment_expression "fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0" identifier = (binary_expression "(float)(uStack_103e & 0xff) * DAT_002a7ff0" (cast_expression "(float)(uStack_103e & 0xff)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(uStack_103e & 0xff)" ( (binary_expression "uStack_103e & 0xff" identifier & number_literal) ))) * identifier)) ;) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (labeled_statement "code_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;" statement_identifier : (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x14) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar14 + 0x14) * 8" (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)fVar2" ( (type_descriptor "double" primitive_type) ) identifier)) ;)) (switch_statement "switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;" case number_literal : (labeled_statement "code_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);" statement_identifier : (expression_statement "uVar5 = ReadBlobByte(iVar6);" (assignment_expression "uVar5 = ReadBlobByte(iVar6)" identifier = (call_expression "ReadBlobByte(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;" case number_literal : (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;" case number_literal : (expression_statement "uVar5 = ReadBlobLong(iVar6);" (assignment_expression "uVar5 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;" default : (labeled_statement "code_r0x0028c020:\n              lVar16 = (longdouble)0;" statement_identifier : (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" identifier = (cast_expression "(longdouble)0" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;)) (goto_statement "goto code_r0x0028be75;" goto statement_identifier ;)) (case_statement "case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;)) })) (expression_statement "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" identifier = (binary_expression "(longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" (call_expression "(longdouble)(uVar5 & 0xff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * (cast_expression "(longdouble)DAT_002a7ff0" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (labeled_statement "code_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);" statement_identifier : (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;)) (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x20) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar14 + 0x20) * 8" (pointer_expression "*(int *)(iVar14 + 0x20)" * (cast_expression "(int *)(iVar14 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)lVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }" if (parenthesized_expression "(uVar9 == 4)" ( (binary_expression "uVar9 == 4" identifier == number_literal) )) (compound_statement "{\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }" { (if_statement "if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }" if (parenthesized_expression "(*(int *)(iVar6 + 4) == 2)" ( (binary_expression "*(int *)(iVar6 + 4) == 2" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }" { (if_statement "if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (compound_statement "{\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }" { (if_statement "if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }" if (parenthesized_expression "((uVar11 & 0x20002) != 0)" ( (binary_expression "(uVar11 & 0x20002) != 0" (parenthesized_expression "(uVar11 & 0x20002)" ( (binary_expression "uVar11 & 0x20002" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }" { (switch_statement "switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                      goto code_r0x0028caae;" case number_literal : (goto_statement "goto code_r0x0028caae;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;" case number_literal : (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;" case number_literal : (expression_statement "uVar5 = ReadBlobLong(iVar6);" (assignment_expression "uVar5 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                      goto code_r0x0028cbef;" default : (goto_statement "goto code_r0x0028cbef;" goto statement_identifier ;)) (case_statement "case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;)) })) (labeled_statement "code_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;" statement_identifier : (expression_statement "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" identifier = (binary_expression "(longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" (call_expression "(longdouble)(uVar5 & 0xff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * (cast_expression "(longdouble)DAT_002a7ff0" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;)) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (goto_statement "goto code_r0x0028cad9;" goto statement_identifier ;) })) (if_statement "if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }" { (switch_statement "switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }" { (case_statement "default:\n                      goto code_r0x0028cbef;" default : (goto_statement "goto code_r0x0028cbef;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                      goto code_r0x0028caef;" case number_literal : (goto_statement "goto code_r0x0028caef;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;" case number_literal : (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (goto_statement "goto code_r0x0028cafc;" goto statement_identifier ;)) (case_statement "case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;)) })) (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" identifier = (cast_expression "(uint)ROUND(lVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;) (goto_statement "goto code_r0x0028cafc;" goto statement_identifier ;) })) (labeled_statement "code_r0x0028cbef:\n                  lVar16 = (longdouble)0;" statement_identifier : (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" identifier = (cast_expression "(longdouble)0" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;)) }) (else_clause "else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }" else (compound_statement "{\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }" { (switch_statement "switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;" case number_literal : (labeled_statement "code_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);" statement_identifier : (expression_statement "uVar5 = ReadBlobByte(iVar6);" (assignment_expression "uVar5 = ReadBlobByte(iVar6)" identifier = (call_expression "ReadBlobByte(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (goto_statement "goto code_r0x0028cabb;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;" case number_literal : (labeled_statement "code_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);" statement_identifier : (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (labeled_statement "code_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);" statement_identifier : (expression_statement "lVar16 = (longdouble)(uStack_103c & 0xffff);" (assignment_expression "lVar16 = (longdouble)(uStack_103c & 0xffff)" identifier = (call_expression "(longdouble)(uStack_103c & 0xffff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uStack_103c & 0xffff)" ( (binary_expression "uStack_103c & 0xffff" identifier & number_literal) )))) ;)) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;" case number_literal : (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" identifier = (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" ( (type_descriptor "longdouble" type_identifier) ) identifier) / (cast_expression "(longdouble)DAT_002a7fec" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                    goto code_r0x0028cbef;" default : (goto_statement "goto code_r0x0028cbef;" goto statement_identifier ;)) (case_statement "case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;)) })) }))) (labeled_statement "code_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }" statement_identifier : (if_statement "if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }" if (parenthesized_expression "(*(int *)(iVar14 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x40) != 0" (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }" { (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x44) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar14 + 0x44) * 8" (pointer_expression "*(int *)(iVar14 + 0x44)" * (cast_expression "(int *)(iVar14 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x44)" ( (binary_expression "iVar14 + 0x44" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)lVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) }))) (goto_statement "goto code_r0x0028bc60;" goto statement_identifier ;) })) (if_statement "if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (compound_statement "{\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }" { (if_statement "if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }" if (parenthesized_expression "((uVar11 & 0x20002) != 0)" ( (binary_expression "(uVar11 & 0x20002) != 0" (parenthesized_expression "(uVar11 & 0x20002)" ( (binary_expression "uVar11 & 0x20002" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }" { (switch_statement "switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                    goto code_r0x0028c600;" case number_literal : (goto_statement "goto code_r0x0028c600;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;" case number_literal : (labeled_statement "code_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);" statement_identifier : (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;" case number_literal : (labeled_statement "code_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);" statement_identifier : (expression_statement "uVar5 = ReadBlobLong(iVar6);" (assignment_expression "uVar5 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (break_statement "break;" break ;)) (case_statement "case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;" case number_literal : (labeled_statement "code_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);" statement_identifier : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;)) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                    goto code_r0x0028c1d2;" default : (goto_statement "goto code_r0x0028c1d2;" goto statement_identifier ;)) (case_statement "case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);" case number_literal : (labeled_statement "code_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);" statement_identifier : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;)) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;)) })) (labeled_statement "code_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;" statement_identifier : (expression_statement "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" identifier = (binary_expression "(longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" (call_expression "(longdouble)(uVar5 & 0xff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * (cast_expression "(longdouble)DAT_002a7ff0" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;)) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (goto_statement "goto code_r0x0028c1d8;" goto statement_identifier ;) })) (if_statement "if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }" { (switch_statement "switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }" { (case_statement "default:\n                    goto code_r0x0028c1d2;" default : (goto_statement "goto code_r0x0028c1d2;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                    goto code_r0x0028c630;" case number_literal : (goto_statement "goto code_r0x0028c630;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;" case number_literal : (labeled_statement "code_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);" statement_identifier : (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (goto_statement "goto code_r0x0028c63d;" goto statement_identifier ;)) (case_statement "case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;" case number_literal : (labeled_statement "code_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);" statement_identifier : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;)) (break_statement "break;" break ;)) (case_statement "case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);" case number_literal : (labeled_statement "code_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);" statement_identifier : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;))) })) (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" identifier = (cast_expression "(uint)ROUND(lVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;) (goto_statement "goto code_r0x0028c63d;" goto statement_identifier ;) })) (labeled_statement "code_r0x0028c1d2:\n                lVar16 = (longdouble)0;" statement_identifier : (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" identifier = (cast_expression "(longdouble)0" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;)) }) (else_clause "else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }" else (compound_statement "{\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }" { (switch_statement "switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;" case number_literal : (labeled_statement "code_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);" statement_identifier : (expression_statement "uVar5 = ReadBlobByte(iVar6);" (assignment_expression "uVar5 = ReadBlobByte(iVar6)" identifier = (call_expression "ReadBlobByte(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (goto_statement "goto code_r0x0028c60d;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;" case number_literal : (labeled_statement "code_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);" statement_identifier : (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (labeled_statement "code_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);" statement_identifier : (expression_statement "lVar16 = (longdouble)(uStack_103c & 0xffff);" (assignment_expression "lVar16 = (longdouble)(uStack_103c & 0xffff)" identifier = (call_expression "(longdouble)(uStack_103c & 0xffff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uStack_103c & 0xffff)" ( (binary_expression "uStack_103c & 0xffff" identifier & number_literal) )))) ;)) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;" case number_literal : (labeled_statement "code_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);" statement_identifier : (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" identifier = (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" ( (type_descriptor "longdouble" type_identifier) ) identifier) / (cast_expression "(longdouble)DAT_002a7fec" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;" case number_literal : (labeled_statement "code_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);" statement_identifier : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;)) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                  goto code_r0x0028c1d2;" default : (goto_statement "goto code_r0x0028c1d2;" goto statement_identifier ;)) (case_statement "case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;" case number_literal : (labeled_statement "code_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);" statement_identifier : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;)) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;)) })) }))) (goto_statement "goto code_r0x0028c1d8;" goto statement_identifier ;) })) (if_statement "if (uVar9 != 5) goto code_r0x0028bc60;" if (parenthesized_expression "(uVar9 != 5)" ( (binary_expression "uVar9 != 5" identifier != number_literal) )) (goto_statement "goto code_r0x0028bc60;" goto statement_identifier ;)) (if_statement "if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }" { (switch_statement "switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;" case number_literal : (expression_statement "bVar4 = ReadBlobByte(iVar6);" (assignment_expression "bVar4 = ReadBlobByte(iVar6)" identifier = (call_expression "ReadBlobByte(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0" identifier = (binary_expression "(longdouble)bVar4 * (longdouble)DAT_002a7ff0" (cast_expression "(longdouble)bVar4" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (cast_expression "(longdouble)DAT_002a7ff0" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;" case number_literal : (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)uVar5;" (assignment_expression "lVar16 = (longdouble)uVar5" identifier = (cast_expression "(longdouble)uVar5" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;" case number_literal : (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" identifier = (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" ( (type_descriptor "longdouble" type_identifier) ) identifier) / (cast_expression "(longdouble)DAT_002a7fec" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (if_statement "if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;" if (parenthesized_expression "(*(int *)(iVar14 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x40) != 0" (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto code_r0x0028cba5;" goto statement_identifier ;)) (goto_statement "goto code_r0x0028c8f8;" goto statement_identifier ;)) (case_statement "default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;" default : (if_statement "if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }" if (parenthesized_expression "(*(int *)(iVar14 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x40) != 0" (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }" { (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" identifier = (cast_expression "(longdouble)0" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;) (goto_statement "goto code_r0x0028cba5;" goto statement_identifier ;) })) (goto_statement "goto code_r0x0028c951;" goto statement_identifier ;)) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (if_statement "if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;" if (parenthesized_expression "(*(int *)(iVar14 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x40) != 0" (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto code_r0x0028cba5;" goto statement_identifier ;)) (goto_statement "goto code_r0x0028c89f;" goto statement_identifier ;)) })) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;" if (parenthesized_expression "(*(int *)(iVar14 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x40) != 0" (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto code_r0x0028cba5;" goto statement_identifier ;)) (goto_statement "goto code_r0x0028c951;" goto statement_identifier ;) })) (if_statement "if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }" if (parenthesized_expression "((uVar11 & 0x20002) == 0)" ( (binary_expression "(uVar11 & 0x20002) == 0" (parenthesized_expression "(uVar11 & 0x20002)" ( (binary_expression "uVar11 & 0x20002" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }" { (if_statement "if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }" { (labeled_statement "code_r0x0028cd74:\n                lVar16 = (longdouble)0;" statement_identifier : (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" identifier = (cast_expression "(longdouble)0" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;)) (goto_statement "goto code_r0x0028cc3c;" goto statement_identifier ;) })) (switch_statement "switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" { (case_statement "default:\n                goto code_r0x0028cd74;" default : (goto_statement "goto code_r0x0028cd74;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;" case number_literal : (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;" case number_literal : (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (goto_statement "goto code_r0x0028cc20;" goto statement_identifier ;)) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (labeled_statement "code_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);" statement_identifier : (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" identifier = (cast_expression "(uint)ROUND(lVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;))) })) (expression_statement "lVar16 = (longdouble)(uStack_103c & 0xffff);" (assignment_expression "lVar16 = (longdouble)(uStack_103c & 0xffff)" identifier = (call_expression "(longdouble)(uStack_103c & 0xffff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uStack_103c & 0xffff)" ( (binary_expression "uStack_103c & 0xffff" identifier & number_literal) )))) ;) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (labeled_statement "code_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;" statement_identifier : (if_statement "if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;" if (parenthesized_expression "(*(int *)(iVar14 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x40) != 0" (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto code_r0x0028cba5;" goto statement_identifier ;))) (goto_statement "goto code_r0x0028cbc9;" goto statement_identifier ;) })) (switch_statement "switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;" case number_literal : (expression_statement "uStack_103e = ReadBlobByte(iVar6);" (assignment_expression "uStack_103e = ReadBlobByte(iVar6)" identifier = (call_expression "ReadBlobByte(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;" case number_literal : (expression_statement "uStack_103e = ReadBlobShort(iVar6);" (assignment_expression "uStack_103e = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;" case number_literal : (expression_statement "uStack_103e = ReadBlobLong(iVar6);" (assignment_expression "uStack_103e = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (goto_statement "goto code_r0x0028cda5;" goto statement_identifier ;)) (case_statement "default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;" default : (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" identifier = (cast_expression "(longdouble)0" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;) (goto_statement "goto code_r0x0028cdc8;" goto statement_identifier ;)) (case_statement "case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (labeled_statement "code_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);" statement_identifier : (expression_statement "uStack_103e = (ushort)ROUND(lVar16);" (assignment_expression "uStack_103e = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;))) })) (expression_statement "lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0" identifier = (binary_expression "(longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0" (call_expression "(longdouble)(uStack_103e & 0xff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uStack_103e & 0xff)" ( (binary_expression "uStack_103e & 0xff" identifier & number_literal) ))) * (cast_expression "(longdouble)DAT_002a7ff0" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;) (labeled_statement "code_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }" statement_identifier : (if_statement "if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }" if (parenthesized_expression "(*(int *)(iVar14 + 0x40) == 0)" ( (binary_expression "*(int *)(iVar14 + 0x40) == 0" (pointer_expression "*(int *)(iVar14 + 0x40)" * (cast_expression "(int *)(iVar14 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }" { (labeled_statement "code_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }" statement_identifier : (switch_statement "switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;" case number_literal : (labeled_statement "code_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);" statement_identifier : (expression_statement "uVar5 = ReadBlobByte(iVar6);" (assignment_expression "uVar5 = ReadBlobByte(iVar6)" identifier = (call_expression "ReadBlobByte(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (break_statement "break;" break ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;" case number_literal : (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;" case number_literal : (expression_statement "uVar5 = ReadBlobLong(iVar6);" (assignment_expression "uVar5 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                goto code_r0x0028ca36;" default : (goto_statement "goto code_r0x0028ca36;" goto statement_identifier ;)) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" identifier = (cast_expression "(ushort)ROUND(lVar16)" ( (type_descriptor "ushort" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;)) }))) (expression_statement "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" identifier = (binary_expression "(longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" (call_expression "(longdouble)(uVar5 & 0xff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uVar5 & 0xff)" ( (binary_expression "uVar5 & 0xff" identifier & number_literal) ))) * (cast_expression "(longdouble)DAT_002a7ff0" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (goto_statement "goto code_r0x0028c8c0;" goto statement_identifier ;) }))) (labeled_statement "code_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;" statement_identifier : (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x44) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar14 + 0x44) * 8" (pointer_expression "*(int *)(iVar14 + 0x44)" * (cast_expression "(int *)(iVar14 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x44)" ( (binary_expression "iVar14 + 0x44" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)lVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;)) (if_statement "if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (compound_statement "{\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }" { (if_statement "if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;" if (parenthesized_expression "((uVar11 & 0x20002) != 0)" ( (binary_expression "(uVar11 & 0x20002) != 0" (parenthesized_expression "(uVar11 & 0x20002)" ( (binary_expression "uVar11 & 0x20002" identifier & number_literal) )) != number_literal) )) (goto_statement "goto code_r0x0028cdd5;" goto statement_identifier ;)) (labeled_statement "code_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }" statement_identifier : (if_statement "if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }" { (switch_statement "switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }" { (case_statement "default:\n                  goto code_r0x0028ca36;" default : (goto_statement "goto code_r0x0028ca36;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\n                  goto code_r0x0028c995;" case number_literal : (goto_statement "goto code_r0x0028c995;" goto statement_identifier ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;" case number_literal : (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (goto_statement "goto code_r0x0028c9a2;" goto statement_identifier ;)) (case_statement "case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);" case number_literal : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;)) })) (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" identifier = (cast_expression "(uint)ROUND(lVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "ROUND(lVar16)" identifier (argument_list "(lVar16)" ( identifier ))))) ;) (goto_statement "goto code_r0x0028c9a2;" goto statement_identifier ;) }))) (labeled_statement "code_r0x0028ca36:\n              lVar16 = (longdouble)0;" statement_identifier : (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" identifier = (cast_expression "(longdouble)0" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;)) }) (else_clause "else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }" else (compound_statement "{\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }" { (labeled_statement "code_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" statement_identifier : (switch_statement "switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" switch (parenthesized_expression "(uVar10)" ( identifier )) (compound_statement "{\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n                goto code_r0x0028c96b;" case number_literal : (goto_statement "goto code_r0x0028c96b;" goto statement_identifier ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;" case number_literal : (labeled_statement "code_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);" statement_identifier : (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" identifier = (call_expression "ReadBlobShort(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;)) (labeled_statement "code_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);" statement_identifier : (expression_statement "lVar16 = (longdouble)(uStack_103c & 0xffff);" (assignment_expression "lVar16 = (longdouble)(uStack_103c & 0xffff)" identifier = (call_expression "(longdouble)(uStack_103c & 0xffff)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(uStack_103c & 0xffff)" ( (binary_expression "uStack_103c & 0xffff" identifier & number_literal) )))) ;)) (break_statement "break;" break ;)) (case_statement "case 4:" case number_literal :) (case_statement "case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;" case number_literal : (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" identifier = (call_expression "ReadBlobLong(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" identifier = (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" ( (type_descriptor "longdouble" type_identifier) ) identifier) / (cast_expression "(longdouble)DAT_002a7fec" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;" case number_literal : (labeled_statement "code_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);" statement_identifier : (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobFloat(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobFloat(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;)) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                goto code_r0x0028ca36;" default : (goto_statement "goto code_r0x0028ca36;" goto statement_identifier ;)) (case_statement "case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;" case number_literal : (labeled_statement "code_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);" statement_identifier : (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" identifier = (cast_expression "(longdouble)ReadBlobDouble(iVar6)" ( (type_descriptor "longdouble" type_identifier) ) (call_expression "ReadBlobDouble(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))))) ;)) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" identifier = (binary_expression "lVar16 * (longdouble)DAT_0029f710" identifier * (cast_expression "(longdouble)DAT_0029f710" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;)) }))) }))) (labeled_statement "code_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);" statement_identifier : (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" identifier = (pointer_expression "*(int *)(iVar6 + 0x2a8)" * (cast_expression "(int *)(iVar6 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2a8)" ( (binary_expression "iVar6 + 0x2a8" identifier + number_literal) ))))) ;)) (labeled_statement "code_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }" statement_identifier : (if_statement "if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }" if (parenthesized_expression "(*(int *)(iVar14 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar14 + 0x34) != 0" (pointer_expression "*(int *)(iVar14 + 0x34)" * (cast_expression "(int *)(iVar14 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x34)" ( (binary_expression "iVar14 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }" { (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8)" * (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x38) * 8)" ( (binary_expression "iVar7 + *(int *)(iVar14 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar14 + 0x38) * 8" (pointer_expression "*(int *)(iVar14 + 0x38)" * (cast_expression "(int *)(iVar14 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x38)" ( (binary_expression "iVar14 + 0x38" identifier + number_literal) )))) * number_literal)) )))) = (cast_expression "(double)lVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) }))) (labeled_statement "code_r0x0028bc60:\n            local_106c = local_106c + 1;" statement_identifier : (expression_statement "local_106c = local_106c + 1;" (assignment_expression "local_106c = local_106c + 1" identifier = (binary_expression "local_106c + 1" identifier + number_literal)) ;)) (expression_statement "iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;" (assignment_expression "iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8" identifier = (binary_expression "iVar7 + *(int *)(iVar6 + 0x298) * 8" identifier + (binary_expression "*(int *)(iVar6 + 0x298) * 8" (pointer_expression "*(int *)(iVar6 + 0x298)" * (cast_expression "(int *)(iVar6 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x298)" ( (binary_expression "iVar6 + 0x298" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(local_106c < *(int *)(iVar6 + 0x18))" ( (binary_expression "local_106c < *(int *)(iVar6 + 0x18)" identifier < (pointer_expression "*(int *)(iVar6 + 0x18)" * (cast_expression "(int *)(iVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "iVar7 = SyncAuthenticPixels(iVar6,param_2);" (assignment_expression "iVar7 = SyncAuthenticPixels(iVar6,param_2)" identifier = (call_expression "SyncAuthenticPixels(iVar6,param_2)" identifier (argument_list "(iVar6,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) goto code_r0x0028c2d0;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x0028c2d0;" goto statement_identifier ;)) (expression_statement "iStack_1058 = iStack_1058 + 1;" (assignment_expression "iStack_1058 = iStack_1058 + 1" identifier = (binary_expression "iStack_1058 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iStack_1058 < *(int *)(iVar6 + 0x1c))" ( (binary_expression "iStack_1058 < *(int *)(iVar6 + 0x1c)" identifier < (pointer_expression "*(int *)(iVar6 + 0x1c)" * (cast_expression "(int *)(iVar6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) ))))) )) ;) })) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (labeled_statement "code_r0x0028c2d7:\n    iStack_1024 = 0;" statement_identifier : (expression_statement "iStack_1024 = 0;" (assignment_expression "iStack_1024 = 0" identifier = number_literal) ;)) (while_statement "while (iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0) {\n      auStack_1020[iVar7] = 0;\n      if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }\n    }" while (parenthesized_expression "(iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0)" ( (comma_expression "iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0" (assignment_expression "iVar7 = ReadBlob(iVar6,0xfff,auStack_1020)" identifier = (call_expression "ReadBlob(iVar6,0xfff,auStack_1020)" identifier (argument_list "(iVar6,0xfff,auStack_1020)" ( identifier , number_literal , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) )) (compound_statement "{\n      auStack_1020[iVar7] = 0;\n      if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }\n    }" { (expression_statement "auStack_1020[iVar7] = 0;" (assignment_expression "auStack_1020[iVar7] = 0" (subscript_expression "auStack_1020[iVar7]" identifier [ identifier ]) = number_literal) ;) (if_statement "if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }" if (parenthesized_expression "(iStack_1024 == 0)" ( (binary_expression "iStack_1024 == 0" identifier == number_literal) )) (compound_statement "{\n        iStack_1024 = ConstantString(auStack_1020);\n      }" { (expression_statement "iStack_1024 = ConstantString(auStack_1020);" (assignment_expression "iStack_1024 = ConstantString(auStack_1020)" identifier = (call_expression "ConstantString(auStack_1020)" identifier (argument_list "(auStack_1020)" ( identifier )))) ;) }) (else_clause "else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }" else (compound_statement "{\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }" { (expression_statement "ConcatenateString(&iStack_1024,auStack_1020);" (call_expression "ConcatenateString(&iStack_1024,auStack_1020)" identifier (argument_list "(&iStack_1024,auStack_1020)" ( (pointer_expression "&iStack_1024" & identifier) , identifier ))) ;) }))) })) (if_statement "if (iStack_1024 != 0) {\n      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);\n      iStack_1024 = RelinquishMagickMemory(iStack_1024);\n    }" if (parenthesized_expression "(iStack_1024 != 0)" ( (binary_expression "iStack_1024 != 0" identifier != number_literal) )) (compound_statement "{\n      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);\n      iStack_1024 = RelinquishMagickMemory(iStack_1024);\n    }" { (expression_statement "SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);" (call_expression "SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2)" identifier (argument_list "(iVar6,"vips:metadata",iStack_1024,param_2)" ( identifier , (string_literal ""vips:metadata"" " string_content ") , identifier , identifier ))) ;) (expression_statement "iStack_1024 = RelinquishMagickMemory(iStack_1024);" (assignment_expression "iStack_1024 = RelinquishMagickMemory(iStack_1024)" identifier = (call_expression "RelinquishMagickMemory(iStack_1024)" identifier (argument_list "(iStack_1024)" ( identifier )))) ;) })) (expression_statement "CloseBlob(iVar6);" (call_expression "CloseBlob(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) (if_statement "if (bVar3) goto LAB_0028b7fb;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto LAB_0028b7fb;" goto statement_identifier ;)) }) (else_clause "else {\ncode_r0x0028b983:\n    pcVar17 = "Unsupported combination of band format and colorspace";\n    uVar8 = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;\nLAB_0028b7e8:\n    CloseBlob(iVar6);\n    DestroyImageList(iVar6);\n  }" else (compound_statement "{\ncode_r0x0028b983:\n    pcVar17 = "Unsupported combination of band format and colorspace";\n    uVar8 = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;\nLAB_0028b7e8:\n    CloseBlob(iVar6);\n    DestroyImageList(iVar6);\n  }" { (labeled_statement "code_r0x0028b983:\n    pcVar17 = "Unsupported combination of band format and colorspace";" statement_identifier : (expression_statement "pcVar17 = "Unsupported combination of band format and colorspace";" (assignment_expression "pcVar17 = "Unsupported combination of band format and colorspace"" identifier = (string_literal ""Unsupported combination of band format and colorspace"" " string_content ")) ;)) (expression_statement "uVar8 = 0x1f2;" (assignment_expression "uVar8 = 0x1f2" identifier = number_literal) ;) (labeled_statement "LAB_0028b9a2:\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;" statement_identifier : (expression_statement "ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;" (call_expression "ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)" identifier (argument_list "(param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)" ( identifier , (string_literal ""coders/vips.c"" " string_content ") , (string_literal ""ReadVIPSImage"" " string_content ") , identifier , number_literal , identifier , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_1 + 0x21f0" identifier + number_literal) ))) ;)) (labeled_statement "LAB_0028b7e8:\n    CloseBlob(iVar6);" statement_identifier : (expression_statement "CloseBlob(iVar6);" (call_expression "CloseBlob(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;)) (expression_statement "DestroyImageList(iVar6);" (call_expression "DestroyImageList(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) }))) (labeled_statement "LAB_0028b7f9:\n  iVar6 = 0;" statement_identifier : (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_0028b7fb:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar6;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar6;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar6;\n  }" { (return_statement "return iVar6;" return identifier ;) }))) (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 TYPE (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 TYPE (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 = (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 (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (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) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , 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 ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (break_statement break ;)) (case_statement default : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case 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 )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement default : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;)) (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 = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;)) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (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 = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) || (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) & LIT) )) == LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_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 { (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (break_statement break ;)) (case_statement default : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (break_statement break ;)) (case_statement default : (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) 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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (labeled_statement statement_identifier : (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (break_statement break ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;)) (goto_statement goto statement_identifier ;) })) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;))) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;))) })) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) 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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement default : (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) })) })) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;))) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement default : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;))) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT & LIT) ))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (break_statement break ;)) (case_statement default : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (break_statement break ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;)) }) (else_clause else (compound_statement { (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (break_statement break ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (break_statement break ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (break_statement break ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) (break_statement break ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;)) }) (else_clause else (compound_statement { (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (break_statement break ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) })) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;)) (case_statement default : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;)) (goto_statement goto statement_identifier ;) })) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;))) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;) })) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement default : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;))) })) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (break_statement break ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) ))) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) )))) ;)) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (break_statement break ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (break_statement break ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) , (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") , IDENT , LIT , IDENT , (string_literal " string_content escape_sequence ") , (binary_expression IDENT + LIT) ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "int FUN_0028b670(int param_1,int param_2)\n\n{\n  double dVar1;\n  float fVar2;\n  bool bVar3;\n  byte bVar4;\n  ushort uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  int iVar14;\n  uint uVar15;\n  int in_GS_OFFSET;\n  longdouble lVar16;\n  char *pcVar17;\n  int local_106c;\n  int iStack_1058;\n  ushort uStack_103e;\n  uint uStack_103c;\n  int iStack_1024;\n  undefined1 auStack_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x28b679;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");\n  }\n  iVar6 = AcquireImage(param_1,param_2);\n  iVar7 = OpenBlob(param_1,iVar6,2,param_2);\n  if (iVar7 == 0) {\n    DestroyImageList(iVar6);\n    iVar6 = 0;\n    goto LAB_0028b7fb;\n  }\n  iVar7 = ReadBlobLSBLong(iVar6);\n  if (iVar7 != 0x8f2a6b6) {\n    if (iVar7 == -0x49590df8) {\n      *(undefined4 *)(iVar6 + 0x234) = 2;\n      goto LAB_0028b739;\n    }\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0);\n    if (iVar6 != 0) goto LAB_0028b7e8;\n    goto LAB_0028b7f9;\n  }\n  *(undefined4 *)(iVar6 + 0x234) = 1;\nLAB_0028b739:\n  uVar8 = ReadBlobLong(iVar6);\n  *(undefined4 *)(iVar6 + 0x18) = uVar8;\n  uVar8 = ReadBlobLong(iVar6);\n  *(undefined4 *)(iVar6 + 0x1c) = uVar8;\n  iVar7 = SetImageExtent(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2);\n  if (iVar7 == 0) {\n    iVar6 = DestroyImageList(iVar6);\n    goto LAB_0028b7fb;\n  }\n  uVar9 = ReadBlobLong(iVar6);\n  ReadBlobLong(iVar6);\n  uVar10 = ReadBlobLong(iVar6);\n  switch(uVar10) {\n  case 0:\n  case 1:\n    *(undefined4 *)(iVar6 + 0x20) = 8;\n    break;\n  case 2:\n  case 3:\n    *(undefined4 *)(iVar6 + 0x20) = 0x10;\n    break;\n  case 4:\n  case 5:\n  case 6:\n    *(undefined4 *)(iVar6 + 0x20) = 0x20;\n    break;\n  default:\n    pcVar17 = "Unsupported band format";\n    uVar8 = 0x1bb;\n    goto LAB_0028b9a2;\n  case 8:\n    *(undefined4 *)(iVar6 + 0x20) = 0x40;\n  }\n  iVar7 = ReadBlobLong(iVar6);\n  uVar11 = ReadBlobLong(iVar6);\n  switch(uVar11) {\n  default:\n    pcVar17 = "Unsupported colorspace";\n    uVar8 = 0x1e2;\n    goto LAB_0028b9a2;\n  case 1:\n  case 0x1a:\n    SetImageColorspace(iVar6,3,param_2);\n    if (uVar9 == 2) {\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    break;\n  case 0xf:\n    SetImageColorspace(iVar6,2,param_2);\n    if (uVar9 == 5) {\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    goto code_r0x0028b9e4;\n  case 0x11:\n  case 0x19:\n    SetImageColorspace(iVar6,0x15,param_2);\n    if (uVar9 == 4) goto code_r0x0028bb8c;\n    break;\n  case 0x16:\n    SetImageColorspace(iVar6,0x17,param_2);\n    if (uVar9 == 4) goto code_r0x0028bbbc;\ncode_r0x0028b9e4:\n    SetImageBackgroundColor(iVar6,param_2);\n    *(undefined4 *)(iVar6 + 0x1dc) = 2;\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    fVar2 = DAT_002aa50c;\n    *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n    goto code_r0x0028ba52;\n  }\n  SetImageBackgroundColor(iVar6,param_2);\n  *(undefined4 *)(iVar6 + 0x1dc) = 2;\n  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n  fVar2 = DAT_002aa50c;\n  *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n  *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n  ReadBlobLongLong(iVar6);\n  ReadBlobLongLong(iVar6);\n  ReadBlobLongLong(iVar6);\n  if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n  if (uVar11 < 0x1b) {\ncode_r0x0028ba52:\n    uVar11 = 1 << ((byte)uVar11 & 0x1f);\n    if (((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))) goto code_r0x0028b983;\n    if (4 < uVar9 - 1) {\n      pcVar17 = "Unsupported number of channels";\n      uVar8 = 500;\n      goto LAB_0028b9a2;\n    }\n    if (iVar7 != 0) {\n      pcVar17 = "Unsupported coding";\n      uVar8 = 0x1f8;\n      goto LAB_0028b9a2;\n    }\n    if (0 < *(int *)(iVar6 + 0x1c)) {\n      iStack_1058 = 0;\n      do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));\n    }\n    bVar3 = true;\ncode_r0x0028c2d7:\n    iStack_1024 = 0;\n    while (iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0) {\n      auStack_1020[iVar7] = 0;\n      if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }\n    }\n    if (iStack_1024 != 0) {\n      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);\n      iStack_1024 = RelinquishMagickMemory(iStack_1024);\n    }\n    CloseBlob(iVar6);\n    if (bVar3) goto LAB_0028b7fb;\n  }\n  else {\ncode_r0x0028b983:\n    pcVar17 = "Unsupported combination of band format and colorspace";\n    uVar8 = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;\nLAB_0028b7e8:\n    CloseBlob(iVar6);\n    DestroyImageList(iVar6);\n  }\nLAB_0028b7f9:\n  iVar6 = 0;\nLAB_0028b7fb:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar6;\n  }\n                    \n  FUN_0029eab0();\n}" (primitive_type "int") (function_declarator "FUN_0028b670(int param_1,int param_2)" (identifier "FUN_0028b670") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  double dVar1;\n  float fVar2;\n  bool bVar3;\n  byte bVar4;\n  ushort uVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  int iVar14;\n  uint uVar15;\n  int in_GS_OFFSET;\n  longdouble lVar16;\n  char *pcVar17;\n  int local_106c;\n  int iStack_1058;\n  ushort uStack_103e;\n  uint uStack_103c;\n  int iStack_1024;\n  undefined1 auStack_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x28b679;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");\n  }\n  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");\n  }\n  if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");\n  }\n  if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");\n  }\n  iVar6 = AcquireImage(param_1,param_2);\n  iVar7 = OpenBlob(param_1,iVar6,2,param_2);\n  if (iVar7 == 0) {\n    DestroyImageList(iVar6);\n    iVar6 = 0;\n    goto LAB_0028b7fb;\n  }\n  iVar7 = ReadBlobLSBLong(iVar6);\n  if (iVar7 != 0x8f2a6b6) {\n    if (iVar7 == -0x49590df8) {\n      *(undefined4 *)(iVar6 + 0x234) = 2;\n      goto LAB_0028b739;\n    }\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0);\n    if (iVar6 != 0) goto LAB_0028b7e8;\n    goto LAB_0028b7f9;\n  }\n  *(undefined4 *)(iVar6 + 0x234) = 1;\nLAB_0028b739:\n  uVar8 = ReadBlobLong(iVar6);\n  *(undefined4 *)(iVar6 + 0x18) = uVar8;\n  uVar8 = ReadBlobLong(iVar6);\n  *(undefined4 *)(iVar6 + 0x1c) = uVar8;\n  iVar7 = SetImageExtent(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2);\n  if (iVar7 == 0) {\n    iVar6 = DestroyImageList(iVar6);\n    goto LAB_0028b7fb;\n  }\n  uVar9 = ReadBlobLong(iVar6);\n  ReadBlobLong(iVar6);\n  uVar10 = ReadBlobLong(iVar6);\n  switch(uVar10) {\n  case 0:\n  case 1:\n    *(undefined4 *)(iVar6 + 0x20) = 8;\n    break;\n  case 2:\n  case 3:\n    *(undefined4 *)(iVar6 + 0x20) = 0x10;\n    break;\n  case 4:\n  case 5:\n  case 6:\n    *(undefined4 *)(iVar6 + 0x20) = 0x20;\n    break;\n  default:\n    pcVar17 = "Unsupported band format";\n    uVar8 = 0x1bb;\n    goto LAB_0028b9a2;\n  case 8:\n    *(undefined4 *)(iVar6 + 0x20) = 0x40;\n  }\n  iVar7 = ReadBlobLong(iVar6);\n  uVar11 = ReadBlobLong(iVar6);\n  switch(uVar11) {\n  default:\n    pcVar17 = "Unsupported colorspace";\n    uVar8 = 0x1e2;\n    goto LAB_0028b9a2;\n  case 1:\n  case 0x1a:\n    SetImageColorspace(iVar6,3,param_2);\n    if (uVar9 == 2) {\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    break;\n  case 0xf:\n    SetImageColorspace(iVar6,2,param_2);\n    if (uVar9 == 5) {\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    goto code_r0x0028b9e4;\n  case 0x11:\n  case 0x19:\n    SetImageColorspace(iVar6,0x15,param_2);\n    if (uVar9 == 4) goto code_r0x0028bb8c;\n    break;\n  case 0x16:\n    SetImageColorspace(iVar6,0x17,param_2);\n    if (uVar9 == 4) goto code_r0x0028bbbc;\ncode_r0x0028b9e4:\n    SetImageBackgroundColor(iVar6,param_2);\n    *(undefined4 *)(iVar6 + 0x1dc) = 2;\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    fVar2 = DAT_002aa50c;\n    *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n    goto code_r0x0028ba52;\n  }\n  SetImageBackgroundColor(iVar6,param_2);\n  *(undefined4 *)(iVar6 + 0x1dc) = 2;\n  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n  fVar2 = DAT_002aa50c;\n  *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n  *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n  ReadBlobLongLong(iVar6);\n  ReadBlobLongLong(iVar6);\n  ReadBlobLongLong(iVar6);\n  if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n  if (uVar11 < 0x1b) {\ncode_r0x0028ba52:\n    uVar11 = 1 << ((byte)uVar11 & 0x1f);\n    if (((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))) goto code_r0x0028b983;\n    if (4 < uVar9 - 1) {\n      pcVar17 = "Unsupported number of channels";\n      uVar8 = 500;\n      goto LAB_0028b9a2;\n    }\n    if (iVar7 != 0) {\n      pcVar17 = "Unsupported coding";\n      uVar8 = 0x1f8;\n      goto LAB_0028b9a2;\n    }\n    if (0 < *(int *)(iVar6 + 0x1c)) {\n      iStack_1058 = 0;\n      do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));\n    }\n    bVar3 = true;\ncode_r0x0028c2d7:\n    iStack_1024 = 0;\n    while (iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0) {\n      auStack_1020[iVar7] = 0;\n      if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }\n    }\n    if (iStack_1024 != 0) {\n      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);\n      iStack_1024 = RelinquishMagickMemory(iStack_1024);\n    }\n    CloseBlob(iVar6);\n    if (bVar3) goto LAB_0028b7fb;\n  }\n  else {\ncode_r0x0028b983:\n    pcVar17 = "Unsupported combination of band format and colorspace";\n    uVar8 = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;\nLAB_0028b7e8:\n    CloseBlob(iVar6);\n    DestroyImageList(iVar6);\n  }\nLAB_0028b7f9:\n  iVar6 = 0;\nLAB_0028b7fb:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar6;\n  }\n                    \n  FUN_0029eab0();\n}" ({ "{") (declaration "double dVar1;" (primitive_type "double") (identifier "dVar1") (; ";")) (declaration "float fVar2;" (primitive_type "float") (identifier "fVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "byte bVar4;" (type_identifier "byte") (identifier "bVar4") (; ";")) (declaration "ushort uVar5;" (type_identifier "ushort") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "longdouble lVar16;" (type_identifier "longdouble") (identifier "lVar16") (; ";")) (declaration "char *pcVar17;" (primitive_type "char") (pointer_declarator "*pcVar17" (* "*") (identifier "pcVar17")) (; ";")) (declaration "int local_106c;" (primitive_type "int") (identifier "local_106c") (; ";")) (declaration "int iStack_1058;" (primitive_type "int") (identifier "iStack_1058") (; ";")) (declaration "ushort uStack_103e;" (type_identifier "ushort") (identifier "uStack_103e") (; ";")) (declaration "uint uStack_103c;" (type_identifier "uint") (identifier "uStack_103c") (; ";")) (declaration "int iStack_1024;" (primitive_type "int") (identifier "iStack_1024") (; ";")) (declaration "undefined1 auStack_1020 [4096];" (type_identifier "undefined1") (array_declarator "auStack_1020 [4096]" (identifier "auStack_1020") ([ "[") (number_literal "4096") (] "]")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x28b679;" (assignment_expression "uStack_14 = 0x28b679" (identifier "uStack_14") (= "=") (number_literal "0x28b679")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");\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/vips.c",0x187,"ReadVIPSImage");\n  }" ({ "{") (expression_statement "__assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");" (call_expression "__assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage")" (identifier "__assert_fail") (argument_list "("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage")" (( "(") (string_literal ""image_info != (const ImageInfo *) NULL"" (" """) (string_content "image_info != (const ImageInfo *) NULL") (" """)) (, ",") (string_literal ""coders/vips.c"" (" """) (string_content "coders/vips.c") (" """)) (, ",") (number_literal "0x187") (, ",") (string_literal ""ReadVIPSImage"" (" """) (string_content "ReadVIPSImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x31f4) != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x31f4) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_1 + 0x31f4) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x31f4)" (* "*") (cast_expression "(int *)(param_1 + 0x31f4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x31f4)" (( "(") (binary_expression "param_1 + 0x31f4" (identifier "param_1") (+ "+") (number_literal "0x31f4")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");\n  }" ({ "{") (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage")" (identifier "__assert_fail") (argument_list "("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,\n                  "ReadVIPSImage")" (( "(") (string_literal ""image_info->signature == MagickCoreSignature"" (" """) (string_content "image_info->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""coders/vips.c"" (" """) (string_content "coders/vips.c") (" """)) (, ",") (number_literal "0x188") (, ",") (string_literal ""ReadVIPSImage"" (" """) (string_content "ReadVIPSImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x31f0) != 0) {\n    LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x31f0) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x31f0) != 0" (pointer_expression "*(int *)(param_1 + 0x31f0)" (* "*") (cast_expression "(int *)(param_1 + 0x31f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x31f0)" (( "(") (binary_expression "param_1 + 0x31f0" (identifier "param_1") (+ "+") (number_literal "0x31f0")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0);\n  }" ({ "{") (expression_statement "LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0);" (call_expression "LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0)" (identifier "LogMagickEvent") (argument_list "(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0)" (( "(") (number_literal "0x8000") (, ",") (string_literal ""coders/vips.c"" (" """) (string_content "coders/vips.c") (" """)) (, ",") (string_literal ""ReadVIPSImage"" (" """) (string_content "ReadVIPSImage") (" """)) (, ",") (number_literal "0x18a") (, ",") (pointer_expression "&DAT_002b6e4e" (& "&") (identifier "DAT_002b6e4e")) (, ",") (binary_expression "param_1 + 0x21f0" (identifier "param_1") (+ "+") (number_literal "0x21f0")) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");\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/vips.c",0x18c,"ReadVIPSImage");\n  }" ({ "{") (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage")" (identifier "__assert_fail") (argument_list "("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage")" (( "(") (string_literal ""exception != (ExceptionInfo *) NULL"" (" """) (string_content "exception != (ExceptionInfo *) NULL") (" """)) (, ",") (string_literal ""coders/vips.c"" (" """) (string_content "coders/vips.c") (" """)) (, ",") (number_literal "0x18c") (, ",") (string_literal ""ReadVIPSImage"" (" """) (string_content "ReadVIPSImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_2 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");\n  }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x1c) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_2 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_2 + 0x1c)" (* "*") (cast_expression "(int *)(param_2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");\n  }" ({ "{") (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage");" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage")" (identifier "__assert_fail") (argument_list "("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,\n                  "ReadVIPSImage")" (( "(") (string_literal ""exception->signature == MagickCoreSignature"" (" """) (string_content "exception->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""coders/vips.c"" (" """) (string_content "coders/vips.c") (" """)) (, ",") (number_literal "0x18d") (, ",") (string_literal ""ReadVIPSImage"" (" """) (string_content "ReadVIPSImage") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar6 = AcquireImage(param_1,param_2);" (assignment_expression "iVar6 = AcquireImage(param_1,param_2)" (identifier "iVar6") (= "=") (call_expression "AcquireImage(param_1,param_2)" (identifier "AcquireImage") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "iVar7 = OpenBlob(param_1,iVar6,2,param_2);" (assignment_expression "iVar7 = OpenBlob(param_1,iVar6,2,param_2)" (identifier "iVar7") (= "=") (call_expression "OpenBlob(param_1,iVar6,2,param_2)" (identifier "OpenBlob") (argument_list "(param_1,iVar6,2,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "iVar6") (, ",") (number_literal "2") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n    DestroyImageList(iVar6);\n    iVar6 = 0;\n    goto LAB_0028b7fb;\n  }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    DestroyImageList(iVar6);\n    iVar6 = 0;\n    goto LAB_0028b7fb;\n  }" ({ "{") (expression_statement "DestroyImageList(iVar6);" (call_expression "DestroyImageList(iVar6)" (identifier "DestroyImageList") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0028b7fb;" (goto "goto") (statement_identifier "LAB_0028b7fb") (; ";")) (} "}"))) (expression_statement "iVar7 = ReadBlobLSBLong(iVar6);" (assignment_expression "iVar7 = ReadBlobLSBLong(iVar6)" (identifier "iVar7") (= "=") (call_expression "ReadBlobLSBLong(iVar6)" (identifier "ReadBlobLSBLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (if_statement "if (iVar7 != 0x8f2a6b6) {\n    if (iVar7 == -0x49590df8) {\n      *(undefined4 *)(iVar6 + 0x234) = 2;\n      goto LAB_0028b739;\n    }\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0);\n    if (iVar6 != 0) goto LAB_0028b7e8;\n    goto LAB_0028b7f9;\n  }" (if "if") (parenthesized_expression "(iVar7 != 0x8f2a6b6)" (( "(") (binary_expression "iVar7 != 0x8f2a6b6" (identifier "iVar7") (!= "!=") (number_literal "0x8f2a6b6")) () ")")) (compound_statement "{\n    if (iVar7 == -0x49590df8) {\n      *(undefined4 *)(iVar6 + 0x234) = 2;\n      goto LAB_0028b739;\n    }\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0);\n    if (iVar6 != 0) goto LAB_0028b7e8;\n    goto LAB_0028b7f9;\n  }" ({ "{") (if_statement "if (iVar7 == -0x49590df8) {\n      *(undefined4 *)(iVar6 + 0x234) = 2;\n      goto LAB_0028b739;\n    }" (if "if") (parenthesized_expression "(iVar7 == -0x49590df8)" (( "(") (binary_expression "iVar7 == -0x49590df8" (identifier "iVar7") (== "==") (number_literal "-0x49590df8")) () ")")) (compound_statement "{\n      *(undefined4 *)(iVar6 + 0x234) = 2;\n      goto LAB_0028b739;\n    }" ({ "{") (expression_statement "*(undefined4 *)(iVar6 + 0x234) = 2;" (assignment_expression "*(undefined4 *)(iVar6 + 0x234) = 2" (pointer_expression "*(undefined4 *)(iVar6 + 0x234)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x234)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x234)" (( "(") (binary_expression "iVar6 + 0x234" (identifier "iVar6") (+ "+") (number_literal "0x234")) () ")")))) (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_0028b739;" (goto "goto") (statement_identifier "LAB_0028b739") (; ";")) (} "}"))) (expression_statement "ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0);" (call_expression "ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0)" (identifier "ThrowMagickException") (argument_list "(param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",\n               param_1 + 0x21f0)" (( "(") (identifier "param_2") (, ",") (string_literal ""coders/vips.c"" (" """) (string_content "coders/vips.c") (" """)) (, ",") (string_literal ""ReadVIPSImage"" (" """) (string_content "ReadVIPSImage") (" """)) (, ",") (number_literal "0x19c") (, ",") (number_literal "0x1a9") (, ",") (string_literal ""ImproperImageHeader"" (" """) (string_content "ImproperImageHeader") (" """)) (, ",") (string_literal ""`%s\'"" (" """) (string_content "`%s") (escape_sequence "\'") (" """)) (, ",") (binary_expression "param_1 + 0x21f0" (identifier "param_1") (+ "+") (number_literal "0x21f0")) () ")"))) (; ";")) (if_statement "if (iVar6 != 0) goto LAB_0028b7e8;" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0028b7e8;" (goto "goto") (statement_identifier "LAB_0028b7e8") (; ";"))) (goto_statement "goto LAB_0028b7f9;" (goto "goto") (statement_identifier "LAB_0028b7f9") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar6 + 0x234) = 1;" (assignment_expression "*(undefined4 *)(iVar6 + 0x234) = 1" (pointer_expression "*(undefined4 *)(iVar6 + 0x234)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x234)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x234)" (( "(") (binary_expression "iVar6 + 0x234" (identifier "iVar6") (+ "+") (number_literal "0x234")) () ")")))) (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_0028b739:\n  uVar8 = ReadBlobLong(iVar6);" (statement_identifier "LAB_0028b739") (: ":") (expression_statement "uVar8 = ReadBlobLong(iVar6);" (assignment_expression "uVar8 = ReadBlobLong(iVar6)" (identifier "uVar8") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";"))) (expression_statement "*(undefined4 *)(iVar6 + 0x18) = uVar8;" (assignment_expression "*(undefined4 *)(iVar6 + 0x18) = uVar8" (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x18)" (( "(") (binary_expression "iVar6 + 0x18" (identifier "iVar6") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "uVar8 = ReadBlobLong(iVar6);" (assignment_expression "uVar8 = ReadBlobLong(iVar6)" (identifier "uVar8") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0x1c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar6 + 0x1c) = uVar8" (pointer_expression "*(undefined4 *)(iVar6 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1c)" (( "(") (binary_expression "iVar6 + 0x1c" (identifier "iVar6") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "iVar7 = SetImageExtent(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2);" (assignment_expression "iVar7 = SetImageExtent(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2)" (identifier "iVar7") (= "=") (call_expression "SetImageExtent(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2)" (identifier "SetImageExtent") (argument_list "(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2)" (( "(") (identifier "iVar6") (, ",") (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x18)" (( "(") (binary_expression "iVar6 + 0x18" (identifier "iVar6") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "uVar8") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n    iVar6 = DestroyImageList(iVar6);\n    goto LAB_0028b7fb;\n  }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar6 = DestroyImageList(iVar6);\n    goto LAB_0028b7fb;\n  }" ({ "{") (expression_statement "iVar6 = DestroyImageList(iVar6);" (assignment_expression "iVar6 = DestroyImageList(iVar6)" (identifier "iVar6") (= "=") (call_expression "DestroyImageList(iVar6)" (identifier "DestroyImageList") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (goto_statement "goto LAB_0028b7fb;" (goto "goto") (statement_identifier "LAB_0028b7fb") (; ";")) (} "}"))) (expression_statement "uVar9 = ReadBlobLong(iVar6);" (assignment_expression "uVar9 = ReadBlobLong(iVar6)" (identifier "uVar9") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "ReadBlobLong(iVar6);" (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "uVar10 = ReadBlobLong(iVar6);" (assignment_expression "uVar10 = ReadBlobLong(iVar6)" (identifier "uVar10") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (switch_statement "switch(uVar10) {\n  case 0:\n  case 1:\n    *(undefined4 *)(iVar6 + 0x20) = 8;\n    break;\n  case 2:\n  case 3:\n    *(undefined4 *)(iVar6 + 0x20) = 0x10;\n    break;\n  case 4:\n  case 5:\n  case 6:\n    *(undefined4 *)(iVar6 + 0x20) = 0x20;\n    break;\n  default:\n    pcVar17 = "Unsupported band format";\n    uVar8 = 0x1bb;\n    goto LAB_0028b9a2;\n  case 8:\n    *(undefined4 *)(iVar6 + 0x20) = 0x40;\n  }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n  case 0:\n  case 1:\n    *(undefined4 *)(iVar6 + 0x20) = 8;\n    break;\n  case 2:\n  case 3:\n    *(undefined4 *)(iVar6 + 0x20) = 0x10;\n    break;\n  case 4:\n  case 5:\n  case 6:\n    *(undefined4 *)(iVar6 + 0x20) = 0x20;\n    break;\n  default:\n    pcVar17 = "Unsupported band format";\n    uVar8 = 0x1bb;\n    goto LAB_0028b9a2;\n  case 8:\n    *(undefined4 *)(iVar6 + 0x20) = 0x40;\n  }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 1:\n    *(undefined4 *)(iVar6 + 0x20) = 8;\n    break;" (case "case") (number_literal "1") (: ":") (expression_statement "*(undefined4 *)(iVar6 + 0x20) = 8;" (assignment_expression "*(undefined4 *)(iVar6 + 0x20) = 8" (pointer_expression "*(undefined4 *)(iVar6 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x20)" (( "(") (binary_expression "iVar6 + 0x20" (identifier "iVar6") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "8")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n    *(undefined4 *)(iVar6 + 0x20) = 0x10;\n    break;" (case "case") (number_literal "3") (: ":") (expression_statement "*(undefined4 *)(iVar6 + 0x20) = 0x10;" (assignment_expression "*(undefined4 *)(iVar6 + 0x20) = 0x10" (pointer_expression "*(undefined4 *)(iVar6 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x20)" (( "(") (binary_expression "iVar6 + 0x20" (identifier "iVar6") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0x10")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:" (case "case") (number_literal "5") (: ":")) (case_statement "case 6:\n    *(undefined4 *)(iVar6 + 0x20) = 0x20;\n    break;" (case "case") (number_literal "6") (: ":") (expression_statement "*(undefined4 *)(iVar6 + 0x20) = 0x20;" (assignment_expression "*(undefined4 *)(iVar6 + 0x20) = 0x20" (pointer_expression "*(undefined4 *)(iVar6 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x20)" (( "(") (binary_expression "iVar6 + 0x20" (identifier "iVar6") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0x20")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    pcVar17 = "Unsupported band format";\n    uVar8 = 0x1bb;\n    goto LAB_0028b9a2;" (default "default") (: ":") (expression_statement "pcVar17 = "Unsupported band format";" (assignment_expression "pcVar17 = "Unsupported band format"" (identifier "pcVar17") (= "=") (string_literal ""Unsupported band format"" (" """) (string_content "Unsupported band format") (" """))) (; ";")) (expression_statement "uVar8 = 0x1bb;" (assignment_expression "uVar8 = 0x1bb" (identifier "uVar8") (= "=") (number_literal "0x1bb")) (; ";")) (goto_statement "goto LAB_0028b9a2;" (goto "goto") (statement_identifier "LAB_0028b9a2") (; ";"))) (case_statement "case 8:\n    *(undefined4 *)(iVar6 + 0x20) = 0x40;" (case "case") (number_literal "8") (: ":") (expression_statement "*(undefined4 *)(iVar6 + 0x20) = 0x40;" (assignment_expression "*(undefined4 *)(iVar6 + 0x20) = 0x40" (pointer_expression "*(undefined4 *)(iVar6 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x20)" (( "(") (binary_expression "iVar6 + 0x20" (identifier "iVar6") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0x40")) (; ";"))) (} "}"))) (expression_statement "iVar7 = ReadBlobLong(iVar6);" (assignment_expression "iVar7 = ReadBlobLong(iVar6)" (identifier "iVar7") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "uVar11 = ReadBlobLong(iVar6);" (assignment_expression "uVar11 = ReadBlobLong(iVar6)" (identifier "uVar11") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (switch_statement "switch(uVar11) {\n  default:\n    pcVar17 = "Unsupported colorspace";\n    uVar8 = 0x1e2;\n    goto LAB_0028b9a2;\n  case 1:\n  case 0x1a:\n    SetImageColorspace(iVar6,3,param_2);\n    if (uVar9 == 2) {\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    break;\n  case 0xf:\n    SetImageColorspace(iVar6,2,param_2);\n    if (uVar9 == 5) {\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    goto code_r0x0028b9e4;\n  case 0x11:\n  case 0x19:\n    SetImageColorspace(iVar6,0x15,param_2);\n    if (uVar9 == 4) goto code_r0x0028bb8c;\n    break;\n  case 0x16:\n    SetImageColorspace(iVar6,0x17,param_2);\n    if (uVar9 == 4) goto code_r0x0028bbbc;\ncode_r0x0028b9e4:\n    SetImageBackgroundColor(iVar6,param_2);\n    *(undefined4 *)(iVar6 + 0x1dc) = 2;\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    fVar2 = DAT_002aa50c;\n    *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n    goto code_r0x0028ba52;\n  }" (switch "switch") (parenthesized_expression "(uVar11)" (( "(") (identifier "uVar11") () ")")) (compound_statement "{\n  default:\n    pcVar17 = "Unsupported colorspace";\n    uVar8 = 0x1e2;\n    goto LAB_0028b9a2;\n  case 1:\n  case 0x1a:\n    SetImageColorspace(iVar6,3,param_2);\n    if (uVar9 == 2) {\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    break;\n  case 0xf:\n    SetImageColorspace(iVar6,2,param_2);\n    if (uVar9 == 5) {\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    goto code_r0x0028b9e4;\n  case 0x11:\n  case 0x19:\n    SetImageColorspace(iVar6,0x15,param_2);\n    if (uVar9 == 4) goto code_r0x0028bb8c;\n    break;\n  case 0x16:\n    SetImageColorspace(iVar6,0x17,param_2);\n    if (uVar9 == 4) goto code_r0x0028bbbc;\ncode_r0x0028b9e4:\n    SetImageBackgroundColor(iVar6,param_2);\n    *(undefined4 *)(iVar6 + 0x1dc) = 2;\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    fVar2 = DAT_002aa50c;\n    *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n    goto code_r0x0028ba52;\n  }" ({ "{") (case_statement "default:\n    pcVar17 = "Unsupported colorspace";\n    uVar8 = 0x1e2;\n    goto LAB_0028b9a2;" (default "default") (: ":") (expression_statement "pcVar17 = "Unsupported colorspace";" (assignment_expression "pcVar17 = "Unsupported colorspace"" (identifier "pcVar17") (= "=") (string_literal ""Unsupported colorspace"" (" """) (string_content "Unsupported colorspace") (" """))) (; ";")) (expression_statement "uVar8 = 0x1e2;" (assignment_expression "uVar8 = 0x1e2" (identifier "uVar8") (= "=") (number_literal "0x1e2")) (; ";")) (goto_statement "goto LAB_0028b9a2;" (goto "goto") (statement_identifier "LAB_0028b9a2") (; ";"))) (case_statement "case 1:" (case "case") (number_literal "1") (: ":")) (case_statement "case 0x1a:\n    SetImageColorspace(iVar6,3,param_2);\n    if (uVar9 == 2) {\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    break;" (case "case") (number_literal "0x1a") (: ":") (expression_statement "SetImageColorspace(iVar6,3,param_2);" (call_expression "SetImageColorspace(iVar6,3,param_2)" (identifier "SetImageColorspace") (argument_list "(iVar6,3,param_2)" (( "(") (identifier "iVar6") (, ",") (number_literal "3") (, ",") (identifier "param_2") () ")"))) (; ";")) (if_statement "if (uVar9 == 2) {\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }" (if "if") (parenthesized_expression "(uVar9 == 2)" (( "(") (binary_expression "uVar9 == 2" (identifier "uVar9") (== "==") (number_literal "2")) () ")")) (compound_statement "{\ncode_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }" ({ "{") (labeled_statement "code_r0x0028bb8c:\n      *(undefined4 *)(iVar6 + 0x294) = 4;" (statement_identifier "code_r0x0028bb8c") (: ":") (expression_statement "*(undefined4 *)(iVar6 + 0x294) = 4;" (assignment_expression "*(undefined4 *)(iVar6 + 0x294) = 4" (pointer_expression "*(undefined4 *)(iVar6 + 0x294)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x294)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x294)" (( "(") (binary_expression "iVar6 + 0x294" (identifier "iVar6") (+ "+") (number_literal "0x294")) () ")")))) (= "=") (number_literal "4")) (; ";"))) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xf:\n    SetImageColorspace(iVar6,2,param_2);\n    if (uVar9 == 5) {\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }\n    goto code_r0x0028b9e4;" (case "case") (number_literal "0xf") (: ":") (expression_statement "SetImageColorspace(iVar6,2,param_2);" (call_expression "SetImageColorspace(iVar6,2,param_2)" (identifier "SetImageColorspace") (argument_list "(iVar6,2,param_2)" (( "(") (identifier "iVar6") (, ",") (number_literal "2") (, ",") (identifier "param_2") () ")"))) (; ";")) (if_statement "if (uVar9 == 5) {\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }" (if "if") (parenthesized_expression "(uVar9 == 5)" (( "(") (binary_expression "uVar9 == 5" (identifier "uVar9") (== "==") (number_literal "5")) () ")")) (compound_statement "{\ncode_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;\n    }" ({ "{") (labeled_statement "code_r0x0028bbbc:\n      *(undefined4 *)(iVar6 + 0x294) = 4;" (statement_identifier "code_r0x0028bbbc") (: ":") (expression_statement "*(undefined4 *)(iVar6 + 0x294) = 4;" (assignment_expression "*(undefined4 *)(iVar6 + 0x294) = 4" (pointer_expression "*(undefined4 *)(iVar6 + 0x294)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x294)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x294)" (( "(") (binary_expression "iVar6 + 0x294" (identifier "iVar6") (+ "+") (number_literal "0x294")) () ")")))) (= "=") (number_literal "4")) (; ";"))) (} "}"))) (goto_statement "goto code_r0x0028b9e4;" (goto "goto") (statement_identifier "code_r0x0028b9e4") (; ";"))) (case_statement "case 0x11:" (case "case") (number_literal "0x11") (: ":")) (case_statement "case 0x19:\n    SetImageColorspace(iVar6,0x15,param_2);\n    if (uVar9 == 4) goto code_r0x0028bb8c;\n    break;" (case "case") (number_literal "0x19") (: ":") (expression_statement "SetImageColorspace(iVar6,0x15,param_2);" (call_expression "SetImageColorspace(iVar6,0x15,param_2)" (identifier "SetImageColorspace") (argument_list "(iVar6,0x15,param_2)" (( "(") (identifier "iVar6") (, ",") (number_literal "0x15") (, ",") (identifier "param_2") () ")"))) (; ";")) (if_statement "if (uVar9 == 4) goto code_r0x0028bb8c;" (if "if") (parenthesized_expression "(uVar9 == 4)" (( "(") (binary_expression "uVar9 == 4" (identifier "uVar9") (== "==") (number_literal "4")) () ")")) (goto_statement "goto code_r0x0028bb8c;" (goto "goto") (statement_identifier "code_r0x0028bb8c") (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x16:\n    SetImageColorspace(iVar6,0x17,param_2);\n    if (uVar9 == 4) goto code_r0x0028bbbc;\ncode_r0x0028b9e4:\n    SetImageBackgroundColor(iVar6,param_2);\n    *(undefined4 *)(iVar6 + 0x1dc) = 2;\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    fVar2 = DAT_002aa50c;\n    *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);\n    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n    *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    ReadBlobLongLong(iVar6);\n    if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;\n    goto code_r0x0028ba52;" (case "case") (number_literal "0x16") (: ":") (expression_statement "SetImageColorspace(iVar6,0x17,param_2);" (call_expression "SetImageColorspace(iVar6,0x17,param_2)" (identifier "SetImageColorspace") (argument_list "(iVar6,0x17,param_2)" (( "(") (identifier "iVar6") (, ",") (number_literal "0x17") (, ",") (identifier "param_2") () ")"))) (; ";")) (if_statement "if (uVar9 == 4) goto code_r0x0028bbbc;" (if "if") (parenthesized_expression "(uVar9 == 4)" (( "(") (binary_expression "uVar9 == 4" (identifier "uVar9") (== "==") (number_literal "4")) () ")")) (goto_statement "goto code_r0x0028bbbc;" (goto "goto") (statement_identifier "code_r0x0028bbbc") (; ";"))) (labeled_statement "code_r0x0028b9e4:\n    SetImageBackgroundColor(iVar6,param_2);" (statement_identifier "code_r0x0028b9e4") (: ":") (expression_statement "SetImageBackgroundColor(iVar6,param_2);" (call_expression "SetImageBackgroundColor(iVar6,param_2)" (identifier "SetImageBackgroundColor") (argument_list "(iVar6,param_2)" (( "(") (identifier "iVar6") (, ",") (identifier "param_2") () ")"))) (; ";"))) (expression_statement "*(undefined4 *)(iVar6 + 0x1dc) = 2;" (assignment_expression "*(undefined4 *)(iVar6 + 0x1dc) = 2" (pointer_expression "*(undefined4 *)(iVar6 + 0x1dc)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x1dc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1dc)" (( "(") (binary_expression "iVar6 + 0x1dc" (identifier "iVar6") (+ "+") (number_literal "0x1dc")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "fVar2 = DAT_002aa50c;" (assignment_expression "fVar2 = DAT_002aa50c" (identifier "fVar2") (= "=") (identifier "DAT_002aa50c")) (; ";")) (expression_statement "*(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);" (assignment_expression "*(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c)" (pointer_expression "*(double *)(iVar6 + 0x1f0)" (* "*") (cast_expression "(double *)(iVar6 + 0x1f0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1f0)" (( "(") (binary_expression "iVar6 + 0x1f0" (identifier "iVar6") (+ "+") (number_literal "0x1f0")) () ")")))) (= "=") (cast_expression "(double)(lVar16 * (longdouble)DAT_002aa50c)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(lVar16 * (longdouble)DAT_002aa50c)" (( "(") (binary_expression "lVar16 * (longdouble)DAT_002aa50c" (identifier "lVar16") (* "*") (cast_expression "(longdouble)DAT_002aa50c" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002aa50c"))) () ")")))) (; ";")) (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "*(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);" (assignment_expression "*(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16)" (pointer_expression "*(double *)(iVar6 + 0x1f8)" (* "*") (cast_expression "(double *)(iVar6 + 0x1f8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1f8)" (( "(") (binary_expression "iVar6 + 0x1f8" (identifier "iVar6") (+ "+") (number_literal "0x1f8")) () ")")))) (= "=") (cast_expression "(double)((longdouble)fVar2 * lVar16)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "((longdouble)fVar2 * lVar16)" (( "(") (binary_expression "(longdouble)fVar2 * lVar16" (cast_expression "(longdouble)fVar2" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "fVar2")) (* "*") (identifier "lVar16")) () ")")))) (; ";")) (expression_statement "ReadBlobLongLong(iVar6);" (call_expression "ReadBlobLongLong(iVar6)" (identifier "ReadBlobLongLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "ReadBlobLongLong(iVar6);" (call_expression "ReadBlobLongLong(iVar6)" (identifier "ReadBlobLongLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "ReadBlobLongLong(iVar6);" (call_expression "ReadBlobLongLong(iVar6)" (identifier "ReadBlobLongLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x1bc) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1bc) != 0" (pointer_expression "*(int *)(param_1 + 0x1bc)" (* "*") (cast_expression "(int *)(param_1 + 0x1bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1bc)" (( "(") (binary_expression "param_1 + 0x1bc" (identifier "param_1") (+ "+") (number_literal "0x1bc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0028b7fb;" (goto "goto") (statement_identifier "LAB_0028b7fb") (; ";"))) (goto_statement "goto code_r0x0028ba52;" (goto "goto") (statement_identifier "code_r0x0028ba52") (; ";"))) (} "}"))) (expression_statement "SetImageBackgroundColor(iVar6,param_2);" (call_expression "SetImageBackgroundColor(iVar6,param_2)" (identifier "SetImageBackgroundColor") (argument_list "(iVar6,param_2)" (( "(") (identifier "iVar6") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0x1dc) = 2;" (assignment_expression "*(undefined4 *)(iVar6 + 0x1dc) = 2" (pointer_expression "*(undefined4 *)(iVar6 + 0x1dc)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x1dc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1dc)" (( "(") (binary_expression "iVar6 + 0x1dc" (identifier "iVar6") (+ "+") (number_literal "0x1dc")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "fVar2 = DAT_002aa50c;" (assignment_expression "fVar2 = DAT_002aa50c" (identifier "fVar2") (= "=") (identifier "DAT_002aa50c")) (; ";")) (expression_statement "*(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);" (assignment_expression "*(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c)" (pointer_expression "*(double *)(iVar6 + 0x1f0)" (* "*") (cast_expression "(double *)(iVar6 + 0x1f0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1f0)" (( "(") (binary_expression "iVar6 + 0x1f0" (identifier "iVar6") (+ "+") (number_literal "0x1f0")) () ")")))) (= "=") (cast_expression "(double)(lVar16 * (longdouble)DAT_002aa50c)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(lVar16 * (longdouble)DAT_002aa50c)" (( "(") (binary_expression "lVar16 * (longdouble)DAT_002aa50c" (identifier "lVar16") (* "*") (cast_expression "(longdouble)DAT_002aa50c" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002aa50c"))) () ")")))) (; ";")) (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "*(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);" (assignment_expression "*(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16)" (pointer_expression "*(double *)(iVar6 + 0x1f8)" (* "*") (cast_expression "(double *)(iVar6 + 0x1f8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1f8)" (( "(") (binary_expression "iVar6 + 0x1f8" (identifier "iVar6") (+ "+") (number_literal "0x1f8")) () ")")))) (= "=") (cast_expression "(double)((longdouble)fVar2 * lVar16)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "((longdouble)fVar2 * lVar16)" (( "(") (binary_expression "(longdouble)fVar2 * lVar16" (cast_expression "(longdouble)fVar2" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "fVar2")) (* "*") (identifier "lVar16")) () ")")))) (; ";")) (expression_statement "ReadBlobLongLong(iVar6);" (call_expression "ReadBlobLongLong(iVar6)" (identifier "ReadBlobLongLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "ReadBlobLongLong(iVar6);" (call_expression "ReadBlobLongLong(iVar6)" (identifier "ReadBlobLongLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";")) (expression_statement "ReadBlobLongLong(iVar6);" (call_expression "ReadBlobLongLong(iVar6)" (identifier "ReadBlobLongLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x1bc) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1bc) != 0" (pointer_expression "*(int *)(param_1 + 0x1bc)" (* "*") (cast_expression "(int *)(param_1 + 0x1bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1bc)" (( "(") (binary_expression "param_1 + 0x1bc" (identifier "param_1") (+ "+") (number_literal "0x1bc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0028b7fb;" (goto "goto") (statement_identifier "LAB_0028b7fb") (; ";"))) (if_statement "if (uVar11 < 0x1b) {\ncode_r0x0028ba52:\n    uVar11 = 1 << ((byte)uVar11 & 0x1f);\n    if (((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))) goto code_r0x0028b983;\n    if (4 < uVar9 - 1) {\n      pcVar17 = "Unsupported number of channels";\n      uVar8 = 500;\n      goto LAB_0028b9a2;\n    }\n    if (iVar7 != 0) {\n      pcVar17 = "Unsupported coding";\n      uVar8 = 0x1f8;\n      goto LAB_0028b9a2;\n    }\n    if (0 < *(int *)(iVar6 + 0x1c)) {\n      iStack_1058 = 0;\n      do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));\n    }\n    bVar3 = true;\ncode_r0x0028c2d7:\n    iStack_1024 = 0;\n    while (iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0) {\n      auStack_1020[iVar7] = 0;\n      if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }\n    }\n    if (iStack_1024 != 0) {\n      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);\n      iStack_1024 = RelinquishMagickMemory(iStack_1024);\n    }\n    CloseBlob(iVar6);\n    if (bVar3) goto LAB_0028b7fb;\n  }\n  else {\ncode_r0x0028b983:\n    pcVar17 = "Unsupported combination of band format and colorspace";\n    uVar8 = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;\nLAB_0028b7e8:\n    CloseBlob(iVar6);\n    DestroyImageList(iVar6);\n  }" (if "if") (parenthesized_expression "(uVar11 < 0x1b)" (( "(") (binary_expression "uVar11 < 0x1b" (identifier "uVar11") (< "<") (number_literal "0x1b")) () ")")) (compound_statement "{\ncode_r0x0028ba52:\n    uVar11 = 1 << ((byte)uVar11 & 0x1f);\n    if (((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))) goto code_r0x0028b983;\n    if (4 < uVar9 - 1) {\n      pcVar17 = "Unsupported number of channels";\n      uVar8 = 500;\n      goto LAB_0028b9a2;\n    }\n    if (iVar7 != 0) {\n      pcVar17 = "Unsupported coding";\n      uVar8 = 0x1f8;\n      goto LAB_0028b9a2;\n    }\n    if (0 < *(int *)(iVar6 + 0x1c)) {\n      iStack_1058 = 0;\n      do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));\n    }\n    bVar3 = true;\ncode_r0x0028c2d7:\n    iStack_1024 = 0;\n    while (iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0) {\n      auStack_1020[iVar7] = 0;\n      if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }\n    }\n    if (iStack_1024 != 0) {\n      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);\n      iStack_1024 = RelinquishMagickMemory(iStack_1024);\n    }\n    CloseBlob(iVar6);\n    if (bVar3) goto LAB_0028b7fb;\n  }" ({ "{") (labeled_statement "code_r0x0028ba52:\n    uVar11 = 1 << ((byte)uVar11 & 0x1f);" (statement_identifier "code_r0x0028ba52") (: ":") (expression_statement "uVar11 = 1 << ((byte)uVar11 & 0x1f);" (assignment_expression "uVar11 = 1 << ((byte)uVar11 & 0x1f)" (identifier "uVar11") (= "=") (binary_expression "1 << ((byte)uVar11 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)uVar11 & 0x1f)" (( "(") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f")) () ")")))) (; ";"))) (if_statement "if (((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))) goto code_r0x0028b983;" (if "if") (parenthesized_expression "(((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        )))" (( "(") (binary_expression "((uVar11 & 0x428002) == 0) &&\n       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))" (parenthesized_expression "((uVar11 & 0x428002) == 0)" (( "(") (binary_expression "(uVar11 & 0x428002) == 0" (parenthesized_expression "(uVar11 & 0x428002)" (( "(") (binary_expression "uVar11 & 0x428002" (identifier "uVar11") (& "&") (number_literal "0x428002")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        ))" (( "(") (parenthesized_expression "(((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)\n        )" (( "(") (binary_expression "((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)" (parenthesized_expression "((uVar11 & 0x6000000) == 0 || (8 < uVar10))" (( "(") (binary_expression "(uVar11 & 0x6000000) == 0 || (8 < uVar10)" (binary_expression "(uVar11 & 0x6000000) == 0" (parenthesized_expression "(uVar11 & 0x6000000)" (( "(") (binary_expression "uVar11 & 0x6000000" (identifier "uVar11") (& "&") (number_literal "0x6000000")) () ")")) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(8 < uVar10)" (( "(") (binary_expression "8 < uVar10" (number_literal "8") (< "<") (identifier "uVar10")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)" (( "(") (binary_expression "(1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0" (parenthesized_expression "(1 << ((byte)uVar10 & 0x1f) & 0x17cU)" (( "(") (binary_expression "1 << ((byte)uVar10 & 0x1f) & 0x17cU" (binary_expression "1 << ((byte)uVar10 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)uVar10 & 0x1f)" (( "(") (binary_expression "(byte)uVar10 & 0x1f" (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "0x17cU")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto code_r0x0028b983;" (goto "goto") (statement_identifier "code_r0x0028b983") (; ";"))) (if_statement "if (4 < uVar9 - 1) {\n      pcVar17 = "Unsupported number of channels";\n      uVar8 = 500;\n      goto LAB_0028b9a2;\n    }" (if "if") (parenthesized_expression "(4 < uVar9 - 1)" (( "(") (binary_expression "4 < uVar9 - 1" (number_literal "4") (< "<") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1"))) () ")")) (compound_statement "{\n      pcVar17 = "Unsupported number of channels";\n      uVar8 = 500;\n      goto LAB_0028b9a2;\n    }" ({ "{") (expression_statement "pcVar17 = "Unsupported number of channels";" (assignment_expression "pcVar17 = "Unsupported number of channels"" (identifier "pcVar17") (= "=") (string_literal ""Unsupported number of channels"" (" """) (string_content "Unsupported number of channels") (" """))) (; ";")) (expression_statement "uVar8 = 500;" (assignment_expression "uVar8 = 500" (identifier "uVar8") (= "=") (number_literal "500")) (; ";")) (goto_statement "goto LAB_0028b9a2;" (goto "goto") (statement_identifier "LAB_0028b9a2") (; ";")) (} "}"))) (if_statement "if (iVar7 != 0) {\n      pcVar17 = "Unsupported coding";\n      uVar8 = 0x1f8;\n      goto LAB_0028b9a2;\n    }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar17 = "Unsupported coding";\n      uVar8 = 0x1f8;\n      goto LAB_0028b9a2;\n    }" ({ "{") (expression_statement "pcVar17 = "Unsupported coding";" (assignment_expression "pcVar17 = "Unsupported coding"" (identifier "pcVar17") (= "=") (string_literal ""Unsupported coding"" (" """) (string_content "Unsupported coding") (" """))) (; ";")) (expression_statement "uVar8 = 0x1f8;" (assignment_expression "uVar8 = 0x1f8" (identifier "uVar8") (= "=") (number_literal "0x1f8")) (; ";")) (goto_statement "goto LAB_0028b9a2;" (goto "goto") (statement_identifier "LAB_0028b9a2") (; ";")) (} "}"))) (if_statement "if (0 < *(int *)(iVar6 + 0x1c)) {\n      iStack_1058 = 0;\n      do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));\n    }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar6 + 0x1c))" (( "(") (binary_expression "0 < *(int *)(iVar6 + 0x1c)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar6 + 0x1c)" (* "*") (cast_expression "(int *)(iVar6 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1c)" (( "(") (binary_expression "iVar6 + 0x1c" (identifier "iVar6") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (compound_statement "{\n      iStack_1058 = 0;\n      do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));\n    }" ({ "{") (expression_statement "iStack_1058 = 0;" (assignment_expression "iStack_1058 = 0" (identifier "iStack_1058") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));" (do "do") (compound_statement "{\n        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);\n        if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }\n        if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }\n        iVar7 = SyncAuthenticPixels(iVar6,param_2);\n        if (iVar7 == 0) goto code_r0x0028c2d0;\n        iStack_1058 = iStack_1058 + 1;\n      }" ({ "{") (expression_statement "iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);" (assignment_expression "iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2)" (identifier "iVar7") (= "=") (call_expression "GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2)" (identifier "GetAuthenticPixels") (argument_list "(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2)" (( "(") (identifier "iVar6") (, ",") (number_literal "0") (, ",") (identifier "iStack_1058") (, ",") (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x18)" (( "(") (binary_expression "iVar6 + 0x18" (identifier "iVar6") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x0028c2d0:\n          bVar3 = false;\n          goto code_r0x0028c2d7;\n        }" ({ "{") (labeled_statement "code_r0x0028c2d0:\n          bVar3 = false;" (statement_identifier "code_r0x0028c2d0") (: ":") (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";"))) (goto_statement "goto code_r0x0028c2d7;" (goto "goto") (statement_identifier "code_r0x0028c2d7") (; ";")) (} "}"))) (if_statement "if (0 < *(int *)(iVar6 + 0x18)) {\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar6 + 0x18))" (( "(") (binary_expression "0 < *(int *)(iVar6 + 0x18)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar6 + 0x18)" (* "*") (cast_expression "(int *)(iVar6 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x18)" (( "(") (binary_expression "iVar6 + 0x18" (identifier "iVar6") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n          uVar12 = uVar11 & 0x6000000;\n          uVar15 = uVar11 & 0x408000;\n          local_106c = 0;\n          do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));\n        }" ({ "{") (expression_statement "uVar12 = uVar11 & 0x6000000;" (assignment_expression "uVar12 = uVar11 & 0x6000000" (identifier "uVar12") (= "=") (binary_expression "uVar11 & 0x6000000" (identifier "uVar11") (& "&") (number_literal "0x6000000"))) (; ";")) (expression_statement "uVar15 = uVar11 & 0x408000;" (assignment_expression "uVar15 = uVar11 & 0x408000" (identifier "uVar15") (= "=") (binary_expression "uVar11 & 0x408000" (identifier "uVar11") (& "&") (number_literal "0x408000"))) (; ";")) (expression_statement "local_106c = 0;" (assignment_expression "local_106c = 0" (identifier "local_106c") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          } while (local_106c < *(int *)(iVar6 + 0x18));" (do "do") (compound_statement "{\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n            if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;\n            switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\ncode_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n            if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }\n            if (uVar9 != 5) goto code_r0x0028bc60;\n            if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }\n            if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }\n            switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }\n            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }\ncode_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n            if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }\ncode_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }\ncode_r0x0028bc60:\n            local_106c = local_106c + 1;\n            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;\n          }" ({ "{") (if_statement "if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }" (if "if") (parenthesized_expression "(uVar15 != 0)" (( "(") (binary_expression "uVar15 != 0" (identifier "uVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;\n              if (uVar9 < 3) goto code_r0x0028bc37;\ncode_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;\ncode_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n              goto code_r0x0028be75;\n            }" ({ "{") (switch_statement "switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;" (case "case") (number_literal "1") (: ":") (expression_statement "bVar4 = ReadBlobByte(iVar6);" (assignment_expression "bVar4 = ReadBlobByte(iVar6)" (identifier "bVar4") (= "=") (call_expression "ReadBlobByte(iVar6)" (identifier "ReadBlobByte") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0" (identifier "lVar16") (= "=") (binary_expression "(longdouble)bVar4 * (longdouble)DAT_002a7ff0" (cast_expression "(longdouble)bVar4" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "bVar4")) (* "*") (cast_expression "(longdouble)DAT_002a7ff0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002a7ff0")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;" (case "case") (number_literal "3") (: ":") (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" (identifier "uVar5") (= "=") (call_expression "ReadBlobShort(iVar6)" (identifier "ReadBlobShort") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "lVar16 = (longdouble)uVar5;" (assignment_expression "lVar16 = (longdouble)uVar5" (identifier "lVar16") (= "=") (cast_expression "(longdouble)uVar5" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "uVar5"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;" (case "case") (number_literal "5") (: ":") (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" (identifier "uVar13") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" (identifier "lVar16") (= "=") (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "uVar13")) (/ "/") (cast_expression "(longdouble)DAT_002a7fec" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002a7fec")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;" (case "case") (number_literal "6") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (= "=") (binary_expression "lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (* "*") (cast_expression "(longdouble)DAT_0029f710" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0029f710")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;\n                if (2 < uVar9) goto code_r0x0028bd09;\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc37;" (default "default") (: ":") (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;" (assignment_expression "*(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0" (pointer_expression "*(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 8) * 8)" (( "(") (binary_expression "iVar7 + *(int *)(iVar14 + 8) * 8" (identifier "iVar7") (+ "+") (binary_expression "*(int *)(iVar14 + 8) * 8" (pointer_expression "*(int *)(iVar14 + 8)" (* "*") (cast_expression "(int *)(iVar14 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 8)" (( "(") (binary_expression "iVar14 + 8" (identifier "iVar14") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (2 < uVar9) goto code_r0x0028bd09;" (if "if") (parenthesized_expression "(2 < uVar9)" (( "(") (binary_expression "2 < uVar9" (number_literal "2") (< "<") (identifier "uVar9")) () ")")) (goto_statement "goto code_r0x0028bd09;" (goto "goto") (statement_identifier "code_r0x0028bd09") (; ";"))) (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" (identifier "lVar16") (= "=") (cast_expression "(longdouble)0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (number_literal "0"))) (; ";")) (goto_statement "goto code_r0x0028bc37;" (goto "goto") (statement_identifier "code_r0x0028bc37") (; ";"))) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;" (case "case") (number_literal "8") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (= "=") (binary_expression "lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (* "*") (cast_expression "(longdouble)DAT_0029f710" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0029f710")))) (; ";"))) (} "}"))) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 8) * 8)" (* "*") (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 8) * 8)" (( "(") (binary_expression "iVar7 + *(int *)(iVar14 + 8) * 8" (identifier "iVar7") (+ "+") (binary_expression "*(int *)(iVar14 + 8) * 8" (pointer_expression "*(int *)(iVar14 + 8)" (* "*") (cast_expression "(int *)(iVar14 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 8)" (( "(") (binary_expression "iVar14 + 8" (identifier "iVar14") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (= "=") (cast_expression "(double)lVar16" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "lVar16"))) (; ";")) (if_statement "if (uVar9 < 3) goto code_r0x0028bc37;" (if "if") (parenthesized_expression "(uVar9 < 3)" (( "(") (binary_expression "uVar9 < 3" (identifier "uVar9") (< "<") (number_literal "3")) () ")")) (goto_statement "goto code_r0x0028bc37;" (goto "goto") (statement_identifier "code_r0x0028bc37") (; ";"))) (labeled_statement "code_r0x0028bd09:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" (statement_identifier "code_r0x0028bd09") (: ":") (switch_statement "switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;" (case "case") (number_literal "1") (: ":") (expression_statement "bVar4 = ReadBlobByte(iVar6);" (assignment_expression "bVar4 = ReadBlobByte(iVar6)" (identifier "bVar4") (= "=") (call_expression "ReadBlobByte(iVar6)" (identifier "ReadBlobByte") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0" (identifier "lVar16") (= "=") (binary_expression "(longdouble)bVar4 * (longdouble)DAT_002a7ff0" (cast_expression "(longdouble)bVar4" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "bVar4")) (* "*") (cast_expression "(longdouble)DAT_002a7ff0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002a7ff0")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;" (case "case") (number_literal "3") (: ":") (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" (identifier "uVar5") (= "=") (call_expression "ReadBlobShort(iVar6)" (identifier "ReadBlobShort") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "lVar16 = (longdouble)uVar5;" (assignment_expression "lVar16 = (longdouble)uVar5" (identifier "lVar16") (= "=") (cast_expression "(longdouble)uVar5" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "uVar5"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;" (case "case") (number_literal "5") (: ":") (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" (identifier "uVar13") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" (identifier "lVar16") (= "=") (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "uVar13")) (/ "/") (cast_expression "(longdouble)DAT_002a7fec" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002a7fec")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;" (case "case") (number_literal "6") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (= "=") (binary_expression "lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (* "*") (cast_expression "(longdouble)DAT_0029f710" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0029f710")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;\n                goto code_r0x0028be31;" (default "default") (: ":") (expression_statement "*(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;" (assignment_expression "*(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0" (pointer_expression "*(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" (* "*") (cast_expression "(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x14) * 8)" (( "(") (binary_expression "iVar7 + *(int *)(iVar14 + 0x14) * 8" (identifier "iVar7") (+ "+") (binary_expression "*(int *)(iVar14 + 0x14) * 8" (pointer_expression "*(int *)(iVar14 + 0x14)" (* "*") (cast_expression "(int *)(iVar14 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x14)" (( "(") (binary_expression "iVar14 + 0x14" (identifier "iVar14") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto code_r0x0028be31;" (goto "goto") (statement_identifier "code_r0x0028be31") (; ";"))) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;" (case "case") (number_literal "8") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (= "=") (binary_expression "lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (* "*") (cast_expression "(longdouble)DAT_0029f710" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0029f710")))) (; ";"))) (} "}")))) (expression_statement "*(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8)" (* "*") (cast_expression "(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8)" (( "(") (binary_expression "iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8" (identifier "iVar7") (+ "+") (binary_expression "*(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(iVar6 + 0x2a8) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(iVar6 + 0x2a8) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar6 + 0x2a8) + 0x14)" (( "(") (binary_expression "*(int *)(iVar6 + 0x2a8) + 0x14" (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (= "=") (cast_expression "(double)lVar16" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "lVar16"))) (; ";")) (labeled_statement "code_r0x0028be31:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" (statement_identifier "code_r0x0028be31") (: ":") (switch_statement "switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n              case 0:\n              case 1:\n                goto code_r0x0028be50;\n              case 2:\n              case 3:\n                goto code_r0x0028bed8;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028c020;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 1:\n                goto code_r0x0028be50;" (case "case") (number_literal "1") (: ":") (goto_statement "goto code_r0x0028be50;" (goto "goto") (statement_identifier "code_r0x0028be50") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n                goto code_r0x0028bed8;" (case "case") (number_literal "3") (: ":") (goto_statement "goto code_r0x0028bed8;" (goto "goto") (statement_identifier "code_r0x0028bed8") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;" (case "case") (number_literal "5") (: ":") (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" (identifier "uVar13") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" (identifier "lVar16") (= "=") (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "uVar13")) (/ "/") (cast_expression "(longdouble)DAT_002a7fec" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002a7fec")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;" (case "case") (number_literal "6") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (= "=") (binary_expression "lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (* "*") (cast_expression "(longdouble)DAT_0029f710" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0029f710")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n                goto code_r0x0028c020;" (default "default") (: ":") (goto_statement "goto code_r0x0028c020;" (goto "goto") (statement_identifier "code_r0x0028c020") (; ";"))) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;" (case "case") (number_literal "8") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (= "=") (binary_expression "lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (* "*") (cast_expression "(longdouble)DAT_0029f710" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0029f710")))) (; ";"))) (} "}")))) (goto_statement "goto code_r0x0028be75;" (goto "goto") (statement_identifier "code_r0x0028be75") (; ";")) (} "}"))) (if_statement "if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }" (if "if") (parenthesized_expression "((uVar11 & 0x20002) == 0)" (( "(") (binary_expression "(uVar11 & 0x20002) == 0" (parenthesized_expression "(uVar11 & 0x20002)" (( "(") (binary_expression "uVar11 & 0x20002" (identifier "uVar11") (& "&") (number_literal "0x20002")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028bc22;\n            }" ({ "{") (if_statement "if (uVar12 == 0) {\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x0028bc20:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028bc22;\n              }" ({ "{") (labeled_statement "code_r0x0028bc20:\n                lVar16 = (longdouble)0;" (statement_identifier "code_r0x0028bc20") (: ":") (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" (identifier "lVar16") (= "=") (cast_expression "(longdouble)0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (number_literal "0"))) (; ";"))) (goto_statement "goto code_r0x0028bc22;" (goto "goto") (statement_identifier "code_r0x0028bc22") (; ";")) (} "}"))) (switch_statement "switch(uVar10) {\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n              default:\n                goto code_r0x0028bc20;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" ({ "{") (case_statement "default:\n                goto code_r0x0028bc20;" (default "default") (: ":") (goto_statement "goto code_r0x0028bc20;" (goto "goto") (statement_identifier "code_r0x0028bc20") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;" (case "case") (number_literal "3") (: ":") (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" (identifier "uStack_103c") (= "=") (call_expression "ReadBlobShort(iVar6)" (identifier "ReadBlobShort") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;" (case "case") (number_literal "5") (: ":") (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" (identifier "uStack_103c") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c3ba;" (case "case") (number_literal "6") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (goto_statement "goto code_r0x0028c3ba;" (goto "goto") (statement_identifier "code_r0x0028c3ba") (; ";"))) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);" (case "case") (number_literal "8") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (labeled_statement "code_r0x0028c3ba:\n                uStack_103c = (uint)ROUND(lVar16);" (statement_identifier "code_r0x0028c3ba") (: ":") (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" (identifier "uStack_103c") (= "=") (cast_expression "(uint)ROUND(lVar16)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "ROUND(lVar16)" (identifier "ROUND") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))))) (; ";")))) (} "}"))) (expression_statement "lVar16 = (longdouble)(uStack_103c & 0xffff);" (assignment_expression "lVar16 = (longdouble)(uStack_103c & 0xffff)" (identifier "lVar16") (= "=") (call_expression "(longdouble)(uStack_103c & 0xffff)" (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")")) (argument_list "(uStack_103c & 0xffff)" (( "(") (binary_expression "uStack_103c & 0xffff" (identifier "uStack_103c") (& "&") (number_literal "0xffff")) () ")")))) (; ";")) (goto_statement "goto code_r0x0028bc22;" (goto "goto") (statement_identifier "code_r0x0028bc22") (; ";")) (} "}"))) (switch_statement "switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;\n            default:\n              goto code_r0x0028bc20;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;" (case "case") (number_literal "1") (: ":") (expression_statement "uStack_103e = ReadBlobByte(iVar6);" (assignment_expression "uStack_103e = ReadBlobByte(iVar6)" (identifier "uStack_103e") (= "=") (call_expression "ReadBlobByte(iVar6)" (identifier "ReadBlobByte") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;" (case "case") (number_literal "3") (: ":") (expression_statement "uStack_103e = ReadBlobShort(iVar6);" (assignment_expression "uStack_103e = ReadBlobShort(iVar6)" (identifier "uStack_103e") (= "=") (call_expression "ReadBlobShort(iVar6)" (identifier "ReadBlobShort") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;" (case "case") (number_literal "5") (: ":") (expression_statement "uStack_103e = ReadBlobLong(iVar6);" (assignment_expression "uStack_103e = ReadBlobLong(iVar6)" (identifier "uStack_103e") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c07a;" (case "case") (number_literal "6") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (goto_statement "goto code_r0x0028c07a;" (goto "goto") (statement_identifier "code_r0x0028c07a") (; ";"))) (case_statement "default:\n              goto code_r0x0028bc20;" (default "default") (: ":") (goto_statement "goto code_r0x0028bc20;" (goto "goto") (statement_identifier "code_r0x0028bc20") (; ";"))) (case_statement "case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);" (case "case") (number_literal "8") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (labeled_statement "code_r0x0028c07a:\n              uStack_103e = (ushort)ROUND(lVar16);" (statement_identifier "code_r0x0028c07a") (: ":") (expression_statement "uStack_103e = (ushort)ROUND(lVar16);" (assignment_expression "uStack_103e = (ushort)ROUND(lVar16)" (identifier "uStack_103e") (= "=") (cast_expression "(ushort)ROUND(lVar16)" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (call_expression "ROUND(lVar16)" (identifier "ROUND") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))))) (; ";")))) (} "}"))) (expression_statement "lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0" (identifier "lVar16") (= "=") (binary_expression "(longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0" (call_expression "(longdouble)(uStack_103e & 0xff)" (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")")) (argument_list "(uStack_103e & 0xff)" (( "(") (binary_expression "uStack_103e & 0xff" (identifier "uStack_103e") (& "&") (number_literal "0xff")) () ")"))) (* "*") (cast_expression "(longdouble)DAT_002a7ff0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002a7ff0")))) (; ";")) (labeled_statement "code_r0x0028bc22:\n            iVar14 = *(int *)(iVar6 + 0x2a8);" (statement_identifier "code_r0x0028bc22") (: ":") (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";"))) (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 8) * 8)" (* "*") (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 8) * 8)" (( "(") (binary_expression "iVar7 + *(int *)(iVar14 + 8) * 8" (identifier "iVar7") (+ "+") (binary_expression "*(int *)(iVar14 + 8) * 8" (pointer_expression "*(int *)(iVar14 + 8)" (* "*") (cast_expression "(int *)(iVar14 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 8)" (( "(") (binary_expression "iVar14 + 8" (identifier "iVar14") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (= "=") (cast_expression "(double)lVar16" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "lVar16"))) (; ";")) (if_statement "if (uVar9 < 3) {\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }" (if "if") (parenthesized_expression "(uVar9 < 3)" (( "(") (binary_expression "uVar9 < 3" (identifier "uVar9") (< "<") (number_literal "3")) () ")")) (compound_statement "{\ncode_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;\n              if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }\n              goto code_r0x0028bc60;\n            }" ({ "{") (labeled_statement "code_r0x0028bc37:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;" (statement_identifier "code_r0x0028bc37") (: ":") (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" (* "*") (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x14) * 8)" (( "(") (binary_expression "iVar7 + *(int *)(iVar14 + 0x14) * 8" (identifier "iVar7") (+ "+") (binary_expression "*(int *)(iVar14 + 0x14) * 8" (pointer_expression "*(int *)(iVar14 + 0x14)" (* "*") (cast_expression "(int *)(iVar14 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x14)" (( "(") (binary_expression "iVar14 + 0x14" (identifier "iVar14") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (= "=") (cast_expression "(double)lVar16" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "lVar16"))) (; ";"))) (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8)" (* "*") (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x20) * 8)" (( "(") (binary_expression "iVar7 + *(int *)(iVar14 + 0x20) * 8" (identifier "iVar7") (+ "+") (binary_expression "*(int *)(iVar14 + 0x20) * 8" (pointer_expression "*(int *)(iVar14 + 0x20)" (* "*") (cast_expression "(int *)(iVar14 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x20)" (( "(") (binary_expression "iVar14 + 0x20" (identifier "iVar14") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (= "=") (cast_expression "(double)lVar16" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "lVar16"))) (; ";")) (if_statement "if (uVar9 == 2) {\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }" (if "if") (parenthesized_expression "(uVar9 == 2)" (( "(") (binary_expression "uVar9 == 2" (identifier "uVar9") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }\n                goto code_r0x0028c1d2;\n              }" ({ "{") (if_statement "if (uVar15 != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }" (if "if") (parenthesized_expression "(uVar15 != 0)" (( "(") (binary_expression "uVar15 != 0" (identifier "uVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }\n                }" ({ "{") (switch_statement "switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c6a4;\n                  case 6:\n                    goto code_r0x0028c67f;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c65a;\n                  }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 1:\n                    goto code_r0x0028c600;" (case "case") (number_literal "1") (: ":") (goto_statement "goto code_r0x0028c600;" (goto "goto") (statement_identifier "code_r0x0028c600") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n                    goto code_r0x0028c630;" (case "case") (number_literal "3") (: ":") (goto_statement "goto code_r0x0028c630;" (goto "goto") (statement_identifier "code_r0x0028c630") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n                    goto code_r0x0028c6a4;" (case "case") (number_literal "5") (: ":") (goto_statement "goto code_r0x0028c6a4;" (goto "goto") (statement_identifier "code_r0x0028c6a4") (; ";"))) (case_statement "case 6:\n                    goto code_r0x0028c67f;" (case "case") (number_literal "6") (: ":") (goto_statement "goto code_r0x0028c67f;" (goto "goto") (statement_identifier "code_r0x0028c67f") (; ";"))) (case_statement "default:\n                    goto code_r0x0028c1d2;" (default "default") (: ":") (goto_statement "goto code_r0x0028c1d2;" (goto "goto") (statement_identifier "code_r0x0028c1d2") (; ";"))) (case_statement "case 8:\n                    goto code_r0x0028c65a;" (case "case") (number_literal "8") (: ":") (goto_statement "goto code_r0x0028c65a;" (goto "goto") (statement_identifier "code_r0x0028c65a") (; ";"))) (} "}"))) (} "}"))) (if_statement "if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }" (if "if") (parenthesized_expression "((uVar11 & 0x20002) != 0)" (( "(") (binary_expression "(uVar11 & 0x20002) != 0" (parenthesized_expression "(uVar11 & 0x20002)" (( "(") (binary_expression "uVar11 & 0x20002" (identifier "uVar11") (& "&") (number_literal "0x20002")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }\n                }" ({ "{") (switch_statement "switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c7e6;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028c82c;\n                  case 6:\n                    goto code_r0x0028c7f8;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\n                    goto code_r0x0028c83e;\n                  }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 1:\n                    goto code_r0x0028c600;" (case "case") (number_literal "1") (: ":") (goto_statement "goto code_r0x0028c600;" (goto "goto") (statement_identifier "code_r0x0028c600") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n                    goto code_r0x0028c7e6;" (case "case") (number_literal "3") (: ":") (goto_statement "goto code_r0x0028c7e6;" (goto "goto") (statement_identifier "code_r0x0028c7e6") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n                    goto code_r0x0028c82c;" (case "case") (number_literal "5") (: ":") (goto_statement "goto code_r0x0028c82c;" (goto "goto") (statement_identifier "code_r0x0028c82c") (; ";"))) (case_statement "case 6:\n                    goto code_r0x0028c7f8;" (case "case") (number_literal "6") (: ":") (goto_statement "goto code_r0x0028c7f8;" (goto "goto") (statement_identifier "code_r0x0028c7f8") (; ";"))) (case_statement "default:\n                    goto code_r0x0028c1d2;" (default "default") (: ":") (goto_statement "goto code_r0x0028c1d2;" (goto "goto") (statement_identifier "code_r0x0028c1d2") (; ";"))) (case_statement "case 8:\n                    goto code_r0x0028c83e;" (case "case") (number_literal "8") (: ":") (goto_statement "goto code_r0x0028c83e;" (goto "goto") (statement_identifier "code_r0x0028c83e") (; ";"))) (} "}"))) (} "}"))) (if_statement "if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }" (if "if") (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }\n                }" ({ "{") (switch_statement "switch(uVar10) {\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n                  default:\n                    break;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\n                    goto code_r0x0028ca3d;\n                  case 6:\n                    goto code_r0x0028ca4f;\n                  case 8:\n                    goto code_r0x0028ca82;\n                  }" ({ "{") (case_statement "default:\n                    break;" (default "default") (: ":") (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n                    goto code_r0x0028c630;" (case "case") (number_literal "3") (: ":") (goto_statement "goto code_r0x0028c630;" (goto "goto") (statement_identifier "code_r0x0028c630") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n                    goto code_r0x0028ca3d;" (case "case") (number_literal "5") (: ":") (goto_statement "goto code_r0x0028ca3d;" (goto "goto") (statement_identifier "code_r0x0028ca3d") (; ";"))) (case_statement "case 6:\n                    goto code_r0x0028ca4f;" (case "case") (number_literal "6") (: ":") (goto_statement "goto code_r0x0028ca4f;" (goto "goto") (statement_identifier "code_r0x0028ca4f") (; ";"))) (case_statement "case 8:\n                    goto code_r0x0028ca82;" (case "case") (number_literal "8") (: ":") (goto_statement "goto code_r0x0028ca82;" (goto "goto") (statement_identifier "code_r0x0028ca82") (; ";"))) (} "}"))) (} "}"))) (goto_statement "goto code_r0x0028c1d2;" (goto "goto") (statement_identifier "code_r0x0028c1d2") (; ";")) (} "}"))) (goto_statement "goto code_r0x0028bc60;" (goto "goto") (statement_identifier "code_r0x0028bc60") (; ";")) (} "}"))) (if_statement "if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }" (if "if") (parenthesized_expression "((uVar11 & 0x20002) == 0)" (( "(") (binary_expression "(uVar11 & 0x20002) == 0" (parenthesized_expression "(uVar11 & 0x20002)" (( "(") (binary_expression "uVar11 & 0x20002" (identifier "uVar11") (& "&") (number_literal "0x20002")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              dVar1 = (double)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;\n              if (uVar12 == 0) goto code_r0x0028c020;\n              switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              goto code_r0x0028be75;\n            }" ({ "{") (if_statement "if (uVar12 == 0) {\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x0028c180:\n                dVar1 = 0.0;\n                goto code_r0x0028c182;\n              }" ({ "{") (labeled_statement "code_r0x0028c180:\n                dVar1 = 0.0;" (statement_identifier "code_r0x0028c180") (: ":") (expression_statement "dVar1 = 0.0;" (assignment_expression "dVar1 = 0.0" (identifier "dVar1") (= "=") (number_literal "0.0")) (; ";"))) (goto_statement "goto code_r0x0028c182;" (goto "goto") (statement_identifier "code_r0x0028c182") (; ";")) (} "}"))) (switch_statement "switch(uVar10) {\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n              default:\n                goto code_r0x0028c180;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" ({ "{") (case_statement "default:\n                goto code_r0x0028c180;" (default "default") (: ":") (goto_statement "goto code_r0x0028c180;" (goto "goto") (statement_identifier "code_r0x0028c180") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;" (case "case") (number_literal "3") (: ":") (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" (identifier "uStack_103c") (= "=") (call_expression "ReadBlobShort(iVar6)" (identifier "ReadBlobShort") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;" (case "case") (number_literal "5") (: ":") (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" (identifier "uStack_103c") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c774;" (case "case") (number_literal "6") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (goto_statement "goto code_r0x0028c774;" (goto "goto") (statement_identifier "code_r0x0028c774") (; ";"))) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);" (case "case") (number_literal "8") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (labeled_statement "code_r0x0028c774:\n                uStack_103c = (uint)ROUND(lVar16);" (statement_identifier "code_r0x0028c774") (: ":") (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" (identifier "uStack_103c") (= "=") (cast_expression "(uint)ROUND(lVar16)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "ROUND(lVar16)" (identifier "ROUND") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))))) (; ";")))) (} "}"))) (expression_statement "dVar1 = (double)(uStack_103c & 0xffff);" (assignment_expression "dVar1 = (double)(uStack_103c & 0xffff)" (identifier "dVar1") (= "=") (cast_expression "(double)(uStack_103c & 0xffff)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(uStack_103c & 0xffff)" (( "(") (binary_expression "uStack_103c & 0xffff" (identifier "uStack_103c") (& "&") (number_literal "0xffff")) () ")")))) (; ";")) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (labeled_statement "code_r0x0028c182:\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;" (statement_identifier "code_r0x0028c182") (: ":") (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" (* "*") (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x14) * 8)" (( "(") (binary_expression "iVar7 + *(int *)(iVar14 + 0x14) * 8" (identifier "iVar7") (+ "+") (binary_expression "*(int *)(iVar14 + 0x14) * 8" (pointer_expression "*(int *)(iVar14 + 0x14)" (* "*") (cast_expression "(int *)(iVar14 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x14)" (( "(") (binary_expression "iVar14 + 0x14" (identifier "iVar14") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "dVar1")) (; ";"))) (if_statement "if (uVar12 == 0) goto code_r0x0028c020;" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x0028c020;" (goto "goto") (statement_identifier "code_r0x0028c020") (; ";"))) (switch_statement "switch(uVar10) {\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n              default:\n                goto code_r0x0028c020;\n              case 2:\n              case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" ({ "{") (case_statement "default:\n                goto code_r0x0028c020;" (default "default") (: ":") (goto_statement "goto code_r0x0028c020;" (goto "goto") (statement_identifier "code_r0x0028c020") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\ncode_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;" (case "case") (number_literal "3") (: ":") (labeled_statement "code_r0x0028bed8:\n                uStack_103c = ReadBlobShort(iVar6);" (statement_identifier "code_r0x0028bed8") (: ":") (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" (identifier "uStack_103c") (= "=") (call_expression "ReadBlobShort(iVar6)" (identifier "ReadBlobShort") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;" (case "case") (number_literal "5") (: ":") (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" (identifier "uStack_103c") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028c703;" (case "case") (number_literal "6") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (goto_statement "goto code_r0x0028c703;" (goto "goto") (statement_identifier "code_r0x0028c703") (; ";"))) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);" (case "case") (number_literal "8") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (labeled_statement "code_r0x0028c703:\n                uStack_103c = (uint)ROUND(lVar16);" (statement_identifier "code_r0x0028c703") (: ":") (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" (identifier "uStack_103c") (= "=") (cast_expression "(uint)ROUND(lVar16)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "ROUND(lVar16)" (identifier "ROUND") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))))) (; ";")))) (} "}"))) (expression_statement "lVar16 = (longdouble)(uStack_103c & 0xffff);" (assignment_expression "lVar16 = (longdouble)(uStack_103c & 0xffff)" (identifier "lVar16") (= "=") (call_expression "(longdouble)(uStack_103c & 0xffff)" (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")")) (argument_list "(uStack_103c & 0xffff)" (( "(") (binary_expression "uStack_103c & 0xffff" (identifier "uStack_103c") (& "&") (number_literal "0xffff")) () ")")))) (; ";")) (goto_statement "goto code_r0x0028be75;" (goto "goto") (statement_identifier "code_r0x0028be75") (; ";")) (} "}"))) (switch_statement "switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;\n            default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;" (case "case") (number_literal "1") (: ":") (expression_statement "uStack_103e = ReadBlobByte(iVar6);" (assignment_expression "uStack_103e = ReadBlobByte(iVar6)" (identifier "uStack_103e") (= "=") (call_expression "ReadBlobByte(iVar6)" (identifier "ReadBlobByte") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;" (case "case") (number_literal "3") (: ":") (expression_statement "uStack_103e = ReadBlobShort(iVar6);" (assignment_expression "uStack_103e = ReadBlobShort(iVar6)" (identifier "uStack_103e") (= "=") (call_expression "ReadBlobShort(iVar6)" (identifier "ReadBlobShort") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;" (case "case") (number_literal "5") (: ":") (expression_statement "uStack_103e = ReadBlobLong(iVar6);" (assignment_expression "uStack_103e = ReadBlobLong(iVar6)" (identifier "uStack_103e") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028c4c8;" (case "case") (number_literal "6") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (goto_statement "goto code_r0x0028c4c8;" (goto "goto") (statement_identifier "code_r0x0028c4c8") (; ";"))) (case_statement "default:\n              fVar2 = 0.0;\n              goto code_r0x0028c4eb;" (default "default") (: ":") (expression_statement "fVar2 = 0.0;" (assignment_expression "fVar2 = 0.0" (identifier "fVar2") (= "=") (number_literal "0.0")) (; ";")) (goto_statement "goto code_r0x0028c4eb;" (goto "goto") (statement_identifier "code_r0x0028c4eb") (; ";"))) (case_statement "case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);" (case "case") (number_literal "8") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (labeled_statement "code_r0x0028c4c8:\n              uStack_103e = (ushort)ROUND(lVar16);" (statement_identifier "code_r0x0028c4c8") (: ":") (expression_statement "uStack_103e = (ushort)ROUND(lVar16);" (assignment_expression "uStack_103e = (ushort)ROUND(lVar16)" (identifier "uStack_103e") (= "=") (cast_expression "(ushort)ROUND(lVar16)" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (call_expression "ROUND(lVar16)" (identifier "ROUND") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))))) (; ";")))) (} "}"))) (expression_statement "fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;" (assignment_expression "fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0" (identifier "fVar2") (= "=") (binary_expression "(float)(uStack_103e & 0xff) * DAT_002a7ff0" (cast_expression "(float)(uStack_103e & 0xff)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(uStack_103e & 0xff)" (( "(") (binary_expression "uStack_103e & 0xff" (identifier "uStack_103e") (& "&") (number_literal "0xff")) () ")"))) (* "*") (identifier "DAT_002a7ff0"))) (; ";")) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (labeled_statement "code_r0x0028c4eb:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;" (statement_identifier "code_r0x0028c4eb") (: ":") (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" (* "*") (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x14) * 8)" (( "(") (binary_expression "iVar7 + *(int *)(iVar14 + 0x14) * 8" (identifier "iVar7") (+ "+") (binary_expression "*(int *)(iVar14 + 0x14) * 8" (pointer_expression "*(int *)(iVar14 + 0x14)" (* "*") (cast_expression "(int *)(iVar14 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x14)" (( "(") (binary_expression "iVar14 + 0x14" (identifier "iVar14") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (= "=") (cast_expression "(double)fVar2" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar2"))) (; ";"))) (switch_statement "switch(uVar10) {\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n            case 0:\n            case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;\n            default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n            }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 1:\ncode_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);\n              break;" (case "case") (number_literal "1") (: ":") (labeled_statement "code_r0x0028be50:\n              uVar5 = ReadBlobByte(iVar6);" (statement_identifier "code_r0x0028be50") (: ":") (expression_statement "uVar5 = ReadBlobByte(iVar6);" (assignment_expression "uVar5 = ReadBlobByte(iVar6)" (identifier "uVar5") (= "=") (call_expression "ReadBlobByte(iVar6)" (identifier "ReadBlobByte") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n              uVar5 = ReadBlobShort(iVar6);\n              break;" (case "case") (number_literal "3") (: ":") (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" (identifier "uVar5") (= "=") (call_expression "ReadBlobShort(iVar6)" (identifier "ReadBlobShort") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n              uVar5 = ReadBlobLong(iVar6);\n              break;" (case "case") (number_literal "5") (: ":") (expression_statement "uVar5 = ReadBlobLong(iVar6);" (assignment_expression "uVar5 = ReadBlobLong(iVar6)" (identifier "uVar5") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);\n              break;" (case "case") (number_literal "6") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" (identifier "uVar5") (= "=") (cast_expression "(ushort)ROUND(lVar16)" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (call_expression "ROUND(lVar16)" (identifier "ROUND") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\ncode_r0x0028c020:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028be75;" (default "default") (: ":") (labeled_statement "code_r0x0028c020:\n              lVar16 = (longdouble)0;" (statement_identifier "code_r0x0028c020") (: ":") (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" (identifier "lVar16") (= "=") (cast_expression "(longdouble)0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (number_literal "0"))) (; ";"))) (goto_statement "goto code_r0x0028be75;" (goto "goto") (statement_identifier "code_r0x0028be75") (; ";"))) (case_statement "case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\n              uVar5 = (ushort)ROUND(lVar16);" (case "case") (number_literal "8") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" (identifier "uVar5") (= "=") (cast_expression "(ushort)ROUND(lVar16)" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (call_expression "ROUND(lVar16)" (identifier "ROUND") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))))) (; ";"))) (} "}"))) (expression_statement "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" (identifier "lVar16") (= "=") (binary_expression "(longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" (call_expression "(longdouble)(uVar5 & 0xff)" (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")")) (argument_list "(uVar5 & 0xff)" (( "(") (binary_expression "uVar5 & 0xff" (identifier "uVar5") (& "&") (number_literal "0xff")) () ")"))) (* "*") (cast_expression "(longdouble)DAT_002a7ff0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002a7ff0")))) (; ";")) (labeled_statement "code_r0x0028be75:\n            iVar14 = *(int *)(iVar6 + 0x2a8);" (statement_identifier "code_r0x0028be75") (: ":") (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";"))) (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8)" (* "*") (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x20) * 8)" (( "(") (binary_expression "iVar7 + *(int *)(iVar14 + 0x20) * 8" (identifier "iVar7") (+ "+") (binary_expression "*(int *)(iVar14 + 0x20) * 8" (pointer_expression "*(int *)(iVar14 + 0x20)" (* "*") (cast_expression "(int *)(iVar14 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x20)" (( "(") (binary_expression "iVar14 + 0x20" (identifier "iVar14") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (= "=") (cast_expression "(double)lVar16" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "lVar16"))) (; ";")) (if_statement "if (uVar9 == 4) {\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }" (if "if") (parenthesized_expression "(uVar9 == 4)" (( "(") (binary_expression "uVar9 == 4" (identifier "uVar9") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n              if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }\n              if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }\n              goto code_r0x0028c1d8;\n            }" ({ "{") (if_statement "if (*(int *)(iVar6 + 4) == 2) {\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }" (if "if") (parenthesized_expression "(*(int *)(iVar6 + 4) == 2)" (( "(") (binary_expression "*(int *)(iVar6 + 4) == 2" (pointer_expression "*(int *)(iVar6 + 4)" (* "*") (cast_expression "(int *)(iVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }\ncode_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }\n                goto code_r0x0028bc60;\n              }" ({ "{") (if_statement "if (uVar15 == 0) {\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }\n                else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }" (if "if") (parenthesized_expression "(uVar15 == 0)" (( "(") (binary_expression "uVar15 == 0" (identifier "uVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }\n                  if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }\ncode_r0x0028cbef:\n                  lVar16 = (longdouble)0;\n                }" ({ "{") (if_statement "if ((uVar11 & 0x20002) != 0) {\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }" (if "if") (parenthesized_expression "((uVar11 & 0x20002) != 0)" (( "(") (binary_expression "(uVar11 & 0x20002) != 0" (parenthesized_expression "(uVar11 & 0x20002)" (( "(") (binary_expression "uVar11 & 0x20002" (identifier "uVar11") (& "&") (number_literal "0x20002")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }\ncode_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    goto code_r0x0028cad9;\n                  }" ({ "{") (switch_statement "switch(uVar10) {\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n                    case 0:\n                    case 1:\n                      goto code_r0x0028caae;\n                    case 2:\n                    case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;\n                    case 4:\n                    case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;\n                    default:\n                      goto code_r0x0028cbef;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                    }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 1:\n                      goto code_r0x0028caae;" (case "case") (number_literal "1") (: ":") (goto_statement "goto code_r0x0028caae;" (goto "goto") (statement_identifier "code_r0x0028caae") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n                      uVar5 = ReadBlobShort(iVar6);\n                      break;" (case "case") (number_literal "3") (: ":") (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" (identifier "uVar5") (= "=") (call_expression "ReadBlobShort(iVar6)" (identifier "ReadBlobShort") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n                      uVar5 = ReadBlobLong(iVar6);\n                      break;" (case "case") (number_literal "5") (: ":") (expression_statement "uVar5 = ReadBlobLong(iVar6);" (assignment_expression "uVar5 = ReadBlobLong(iVar6)" (identifier "uVar5") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);\n                      break;" (case "case") (number_literal "6") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" (identifier "uVar5") (= "=") (cast_expression "(ushort)ROUND(lVar16)" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (call_expression "ROUND(lVar16)" (identifier "ROUND") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n                      goto code_r0x0028cbef;" (default "default") (: ":") (goto_statement "goto code_r0x0028cbef;" (goto "goto") (statement_identifier "code_r0x0028cbef") (; ";"))) (case_statement "case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                      uVar5 = (ushort)ROUND(lVar16);" (case "case") (number_literal "8") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" (identifier "uVar5") (= "=") (cast_expression "(ushort)ROUND(lVar16)" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (call_expression "ROUND(lVar16)" (identifier "ROUND") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))))) (; ";"))) (} "}"))) (labeled_statement "code_r0x0028cabb:\n                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;" (statement_identifier "code_r0x0028cabb") (: ":") (expression_statement "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" (identifier "lVar16") (= "=") (binary_expression "(longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" (call_expression "(longdouble)(uVar5 & 0xff)" (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")")) (argument_list "(uVar5 & 0xff)" (( "(") (binary_expression "uVar5 & 0xff" (identifier "uVar5") (& "&") (number_literal "0xff")) () ")"))) (* "*") (cast_expression "(longdouble)DAT_002a7ff0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002a7ff0")))) (; ";"))) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (goto_statement "goto code_r0x0028cad9;" (goto "goto") (statement_identifier "code_r0x0028cad9") (; ";")) (} "}"))) (if_statement "if (uVar12 != 0) {\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }" (if "if") (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }\n                    uStack_103c = (uint)ROUND(lVar16);\n                    goto code_r0x0028cafc;\n                  }" ({ "{") (switch_statement "switch(uVar10) {\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n                    default:\n                      goto code_r0x0028cbef;\n                    case 2:\n                    case 3:\n                      goto code_r0x0028caef;\n                    case 4:\n                    case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;\n                    case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;\n                    case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    }" ({ "{") (case_statement "default:\n                      goto code_r0x0028cbef;" (default "default") (: ":") (goto_statement "goto code_r0x0028cbef;" (goto "goto") (statement_identifier "code_r0x0028cbef") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n                      goto code_r0x0028caef;" (case "case") (number_literal "3") (: ":") (goto_statement "goto code_r0x0028caef;" (goto "goto") (statement_identifier "code_r0x0028caef") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n                      uStack_103c = ReadBlobLong(iVar6);\n                      goto code_r0x0028cafc;" (case "case") (number_literal "5") (: ":") (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" (identifier "uStack_103c") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (goto_statement "goto code_r0x0028cafc;" (goto "goto") (statement_identifier "code_r0x0028cafc") (; ";"))) (case_statement "case 6:\n                      lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                      break;" (case "case") (number_literal "6") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 8:\n                      lVar16 = (longdouble)ReadBlobDouble(iVar6);" (case "case") (number_literal "8") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";"))) (} "}"))) (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" (identifier "uStack_103c") (= "=") (cast_expression "(uint)ROUND(lVar16)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "ROUND(lVar16)" (identifier "ROUND") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))))) (; ";")) (goto_statement "goto code_r0x0028cafc;" (goto "goto") (statement_identifier "code_r0x0028cafc") (; ";")) (} "}"))) (labeled_statement "code_r0x0028cbef:\n                  lVar16 = (longdouble)0;" (statement_identifier "code_r0x0028cbef") (: ":") (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" (identifier "lVar16") (= "=") (cast_expression "(longdouble)0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (number_literal "0"))) (; ";"))) (} "}")) (else_clause "else {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }" (else "else") (compound_statement "{\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }\n                }" ({ "{") (switch_statement "switch(uVar10) {\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n                  case 0:\n                  case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;\n                  case 2:\n                  case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 4:\n                  case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;\n                  case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;\n                  default:\n                    goto code_r0x0028cbef;\n                  case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 1:\ncode_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);\n                    goto code_r0x0028cabb;" (case "case") (number_literal "1") (: ":") (labeled_statement "code_r0x0028caae:\n                    uVar5 = ReadBlobByte(iVar6);" (statement_identifier "code_r0x0028caae") (: ":") (expression_statement "uVar5 = ReadBlobByte(iVar6);" (assignment_expression "uVar5 = ReadBlobByte(iVar6)" (identifier "uVar5") (= "=") (call_expression "ReadBlobByte(iVar6)" (identifier "ReadBlobByte") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";"))) (goto_statement "goto code_r0x0028cabb;" (goto "goto") (statement_identifier "code_r0x0028cabb") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\ncode_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;" (case "case") (number_literal "3") (: ":") (labeled_statement "code_r0x0028caef:\n                    uStack_103c = ReadBlobShort(iVar6);" (statement_identifier "code_r0x0028caef") (: ":") (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" (identifier "uStack_103c") (= "=") (call_expression "ReadBlobShort(iVar6)" (identifier "ReadBlobShort") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";"))) (labeled_statement "code_r0x0028cafc:\n                    lVar16 = (longdouble)(uStack_103c & 0xffff);" (statement_identifier "code_r0x0028cafc") (: ":") (expression_statement "lVar16 = (longdouble)(uStack_103c & 0xffff);" (assignment_expression "lVar16 = (longdouble)(uStack_103c & 0xffff)" (identifier "lVar16") (= "=") (call_expression "(longdouble)(uStack_103c & 0xffff)" (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")")) (argument_list "(uStack_103c & 0xffff)" (( "(") (binary_expression "uStack_103c & 0xffff" (identifier "uStack_103c") (& "&") (number_literal "0xffff")) () ")")))) (; ";"))) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n                    uVar13 = ReadBlobLong(iVar6);\n                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    break;" (case "case") (number_literal "5") (: ":") (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" (identifier "uVar13") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" (identifier "lVar16") (= "=") (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "uVar13")) (/ "/") (cast_expression "(longdouble)DAT_002a7fec" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002a7fec")))) (; ";")) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                    break;" (case "case") (number_literal "6") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (= "=") (binary_expression "lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (* "*") (cast_expression "(longdouble)DAT_0029f710" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0029f710")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n                    goto code_r0x0028cbef;" (default "default") (: ":") (goto_statement "goto code_r0x0028cbef;" (goto "goto") (statement_identifier "code_r0x0028cbef") (; ";"))) (case_statement "case 8:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    iVar14 = *(int *)(iVar6 + 0x2a8);\n                    lVar16 = lVar16 * (longdouble)DAT_0029f710;" (case "case") (number_literal "8") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (= "=") (binary_expression "lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (* "*") (cast_expression "(longdouble)DAT_0029f710" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0029f710")))) (; ";"))) (} "}"))) (} "}")))) (labeled_statement "code_r0x0028cad9:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }" (statement_identifier "code_r0x0028cad9") (: ":") (if_statement "if (*(int *)(iVar14 + 0x40) != 0) {\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }" (if "if") (parenthesized_expression "(*(int *)(iVar14 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar14 + 0x40) != 0" (pointer_expression "*(int *)(iVar14 + 0x40)" (* "*") (cast_expression "(int *)(iVar14 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x40)" (( "(") (binary_expression "iVar14 + 0x40" (identifier "iVar14") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;\n                }" ({ "{") (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8)" (* "*") (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x44) * 8)" (( "(") (binary_expression "iVar7 + *(int *)(iVar14 + 0x44) * 8" (identifier "iVar7") (+ "+") (binary_expression "*(int *)(iVar14 + 0x44) * 8" (pointer_expression "*(int *)(iVar14 + 0x44)" (* "*") (cast_expression "(int *)(iVar14 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x44)" (( "(") (binary_expression "iVar14 + 0x44" (identifier "iVar14") (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (= "=") (cast_expression "(double)lVar16" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "lVar16"))) (; ";")) (} "}")))) (goto_statement "goto code_r0x0028bc60;" (goto "goto") (statement_identifier "code_r0x0028bc60") (; ";")) (} "}"))) (if_statement "if (uVar15 == 0) {\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }\n              else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }" (if "if") (parenthesized_expression "(uVar15 == 0)" (( "(") (binary_expression "uVar15 == 0" (identifier "uVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }\n                if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }\ncode_r0x0028c1d2:\n                lVar16 = (longdouble)0;\n              }" ({ "{") (if_statement "if ((uVar11 & 0x20002) != 0) {\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }" (if "if") (parenthesized_expression "((uVar11 & 0x20002) != 0)" (( "(") (binary_expression "(uVar11 & 0x20002) != 0" (parenthesized_expression "(uVar11 & 0x20002)" (( "(") (binary_expression "uVar11 & 0x20002" (identifier "uVar11") (& "&") (number_literal "0x20002")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }\ncode_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  goto code_r0x0028c1d8;\n                }" ({ "{") (switch_statement "switch(uVar10) {\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n                  case 0:\n                  case 1:\n                    goto code_r0x0028c600;\n                  case 2:\n                  case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;\n                  case 4:\n                  case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;\n                  case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                  }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 1:\n                    goto code_r0x0028c600;" (case "case") (number_literal "1") (: ":") (goto_statement "goto code_r0x0028c600;" (goto "goto") (statement_identifier "code_r0x0028c600") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\ncode_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);\n                    break;" (case "case") (number_literal "3") (: ":") (labeled_statement "code_r0x0028c7e6:\n                    uVar5 = ReadBlobShort(iVar6);" (statement_identifier "code_r0x0028c7e6") (: ":") (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" (identifier "uVar5") (= "=") (call_expression "ReadBlobShort(iVar6)" (identifier "ReadBlobShort") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\ncode_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);\n                    break;" (case "case") (number_literal "5") (: ":") (labeled_statement "code_r0x0028c82c:\n                    uVar5 = ReadBlobLong(iVar6);" (statement_identifier "code_r0x0028c82c") (: ":") (expression_statement "uVar5 = ReadBlobLong(iVar6);" (assignment_expression "uVar5 = ReadBlobLong(iVar6)" (identifier "uVar5") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\ncode_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);\n                    break;" (case "case") (number_literal "6") (: ":") (labeled_statement "code_r0x0028c7f8:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);" (statement_identifier "code_r0x0028c7f8") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";"))) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" (identifier "uVar5") (= "=") (cast_expression "(ushort)ROUND(lVar16)" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (call_expression "ROUND(lVar16)" (identifier "ROUND") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n                    goto code_r0x0028c1d2;" (default "default") (: ":") (goto_statement "goto code_r0x0028c1d2;" (goto "goto") (statement_identifier "code_r0x0028c1d2") (; ";"))) (case_statement "case 8:\ncode_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                    uVar5 = (ushort)ROUND(lVar16);" (case "case") (number_literal "8") (: ":") (labeled_statement "code_r0x0028c83e:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);" (statement_identifier "code_r0x0028c83e") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";"))) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" (identifier "uVar5") (= "=") (cast_expression "(ushort)ROUND(lVar16)" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (call_expression "ROUND(lVar16)" (identifier "ROUND") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))))) (; ";"))) (} "}"))) (labeled_statement "code_r0x0028c60d:\n                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;" (statement_identifier "code_r0x0028c60d") (: ":") (expression_statement "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" (identifier "lVar16") (= "=") (binary_expression "(longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" (call_expression "(longdouble)(uVar5 & 0xff)" (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")")) (argument_list "(uVar5 & 0xff)" (( "(") (binary_expression "uVar5 & 0xff" (identifier "uVar5") (& "&") (number_literal "0xff")) () ")"))) (* "*") (cast_expression "(longdouble)DAT_002a7ff0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002a7ff0")))) (; ";"))) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (goto_statement "goto code_r0x0028c1d8;" (goto "goto") (statement_identifier "code_r0x0028c1d8") (; ";")) (} "}"))) (if_statement "if (uVar12 != 0) {\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }" (if "if") (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }\n                  uStack_103c = (uint)ROUND(lVar16);\n                  goto code_r0x0028c63d;\n                }" ({ "{") (switch_statement "switch(uVar10) {\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n                  default:\n                    goto code_r0x0028c1d2;\n                  case 2:\n                  case 3:\n                    goto code_r0x0028c630;\n                  case 4:\n                  case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;\n                  case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;\n                  case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  }" ({ "{") (case_statement "default:\n                    goto code_r0x0028c1d2;" (default "default") (: ":") (goto_statement "goto code_r0x0028c1d2;" (goto "goto") (statement_identifier "code_r0x0028c1d2") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n                    goto code_r0x0028c630;" (case "case") (number_literal "3") (: ":") (goto_statement "goto code_r0x0028c630;" (goto "goto") (statement_identifier "code_r0x0028c630") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\ncode_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);\n                    goto code_r0x0028c63d;" (case "case") (number_literal "5") (: ":") (labeled_statement "code_r0x0028ca3d:\n                    uStack_103c = ReadBlobLong(iVar6);" (statement_identifier "code_r0x0028ca3d") (: ":") (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" (identifier "uStack_103c") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";"))) (goto_statement "goto code_r0x0028c63d;" (goto "goto") (statement_identifier "code_r0x0028c63d") (; ";"))) (case_statement "case 6:\ncode_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                    break;" (case "case") (number_literal "6") (: ":") (labeled_statement "code_r0x0028ca4f:\n                    lVar16 = (longdouble)ReadBlobFloat(iVar6);" (statement_identifier "code_r0x0028ca4f") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 8:\ncode_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);" (case "case") (number_literal "8") (: ":") (labeled_statement "code_r0x0028ca82:\n                    lVar16 = (longdouble)ReadBlobDouble(iVar6);" (statement_identifier "code_r0x0028ca82") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")))) (} "}"))) (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" (identifier "uStack_103c") (= "=") (cast_expression "(uint)ROUND(lVar16)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "ROUND(lVar16)" (identifier "ROUND") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))))) (; ";")) (goto_statement "goto code_r0x0028c63d;" (goto "goto") (statement_identifier "code_r0x0028c63d") (; ";")) (} "}"))) (labeled_statement "code_r0x0028c1d2:\n                lVar16 = (longdouble)0;" (statement_identifier "code_r0x0028c1d2") (: ":") (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" (identifier "lVar16") (= "=") (cast_expression "(longdouble)0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (number_literal "0"))) (; ";"))) (} "}")) (else_clause "else {\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }" (else "else") (compound_statement "{\n                switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }\n              }" ({ "{") (switch_statement "switch(uVar10) {\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n                case 0:\n                case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;\n                case 2:\n                case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 4:\n                case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;\n                case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;\n                default:\n                  goto code_r0x0028c1d2;\n                case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 1:\ncode_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);\n                  goto code_r0x0028c60d;" (case "case") (number_literal "1") (: ":") (labeled_statement "code_r0x0028c600:\n                  uVar5 = ReadBlobByte(iVar6);" (statement_identifier "code_r0x0028c600") (: ":") (expression_statement "uVar5 = ReadBlobByte(iVar6);" (assignment_expression "uVar5 = ReadBlobByte(iVar6)" (identifier "uVar5") (= "=") (call_expression "ReadBlobByte(iVar6)" (identifier "ReadBlobByte") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";"))) (goto_statement "goto code_r0x0028c60d;" (goto "goto") (statement_identifier "code_r0x0028c60d") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\ncode_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;" (case "case") (number_literal "3") (: ":") (labeled_statement "code_r0x0028c630:\n                  uStack_103c = ReadBlobShort(iVar6);" (statement_identifier "code_r0x0028c630") (: ":") (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" (identifier "uStack_103c") (= "=") (call_expression "ReadBlobShort(iVar6)" (identifier "ReadBlobShort") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";"))) (labeled_statement "code_r0x0028c63d:\n                  lVar16 = (longdouble)(uStack_103c & 0xffff);" (statement_identifier "code_r0x0028c63d") (: ":") (expression_statement "lVar16 = (longdouble)(uStack_103c & 0xffff);" (assignment_expression "lVar16 = (longdouble)(uStack_103c & 0xffff)" (identifier "lVar16") (= "=") (call_expression "(longdouble)(uStack_103c & 0xffff)" (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")")) (argument_list "(uStack_103c & 0xffff)" (( "(") (binary_expression "uStack_103c & 0xffff" (identifier "uStack_103c") (& "&") (number_literal "0xffff")) () ")")))) (; ";"))) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\ncode_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);\n                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  break;" (case "case") (number_literal "5") (: ":") (labeled_statement "code_r0x0028c6a4:\n                  uVar13 = ReadBlobLong(iVar6);" (statement_identifier "code_r0x0028c6a4") (: ":") (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" (identifier "uVar13") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";"))) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" (identifier "lVar16") (= "=") (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "uVar13")) (/ "/") (cast_expression "(longdouble)DAT_002a7fec" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002a7fec")))) (; ";")) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\ncode_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                  break;" (case "case") (number_literal "6") (: ":") (labeled_statement "code_r0x0028c67f:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);" (statement_identifier "code_r0x0028c67f") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";"))) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (= "=") (binary_expression "lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (* "*") (cast_expression "(longdouble)DAT_0029f710" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0029f710")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n                  goto code_r0x0028c1d2;" (default "default") (: ":") (goto_statement "goto code_r0x0028c1d2;" (goto "goto") (statement_identifier "code_r0x0028c1d2") (; ";"))) (case_statement "case 8:\ncode_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                  iVar14 = *(int *)(iVar6 + 0x2a8);\n                  lVar16 = lVar16 * (longdouble)DAT_0029f710;" (case "case") (number_literal "8") (: ":") (labeled_statement "code_r0x0028c65a:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);" (statement_identifier "code_r0x0028c65a") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";"))) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (= "=") (binary_expression "lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (* "*") (cast_expression "(longdouble)DAT_0029f710" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0029f710")))) (; ";"))) (} "}"))) (} "}")))) (goto_statement "goto code_r0x0028c1d8;" (goto "goto") (statement_identifier "code_r0x0028c1d8") (; ";")) (} "}"))) (if_statement "if (uVar9 != 5) goto code_r0x0028bc60;" (if "if") (parenthesized_expression "(uVar9 != 5)" (( "(") (binary_expression "uVar9 != 5" (identifier "uVar9") (!= "!=") (number_literal "5")) () ")")) (goto_statement "goto code_r0x0028bc60;" (goto "goto") (statement_identifier "code_r0x0028bc60") (; ";"))) (if_statement "if (uVar15 != 0) {\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }" (if "if") (parenthesized_expression "(uVar15 != 0)" (( "(") (binary_expression "uVar15 != 0" (identifier "uVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }\n              iVar14 = *(int *)(iVar6 + 0x2a8);\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028c951;\n            }" ({ "{") (switch_statement "switch(uVar10) {\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n              case 0:\n              case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;\n              default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;\n              }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 1:\n                bVar4 = ReadBlobByte(iVar6);\n                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;\n                break;" (case "case") (number_literal "1") (: ":") (expression_statement "bVar4 = ReadBlobByte(iVar6);" (assignment_expression "bVar4 = ReadBlobByte(iVar6)" (identifier "bVar4") (= "=") (call_expression "ReadBlobByte(iVar6)" (identifier "ReadBlobByte") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0" (identifier "lVar16") (= "=") (binary_expression "(longdouble)bVar4 * (longdouble)DAT_002a7ff0" (cast_expression "(longdouble)bVar4" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "bVar4")) (* "*") (cast_expression "(longdouble)DAT_002a7ff0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002a7ff0")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                lVar16 = (longdouble)uVar5;\n                break;" (case "case") (number_literal "3") (: ":") (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" (identifier "uVar5") (= "=") (call_expression "ReadBlobShort(iVar6)" (identifier "ReadBlobShort") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "lVar16 = (longdouble)uVar5;" (assignment_expression "lVar16 = (longdouble)uVar5" (identifier "lVar16") (= "=") (cast_expression "(longdouble)uVar5" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "uVar5"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;" (case "case") (number_literal "5") (: ":") (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" (identifier "uVar13") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" (identifier "lVar16") (= "=") (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "uVar13")) (/ "/") (cast_expression "(longdouble)DAT_002a7fec" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002a7fec")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c8f8;" (case "case") (number_literal "6") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (= "=") (binary_expression "lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (* "*") (cast_expression "(longdouble)DAT_0029f710" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0029f710")))) (; ";")) (if_statement "if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;" (if "if") (parenthesized_expression "(*(int *)(iVar14 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar14 + 0x40) != 0" (pointer_expression "*(int *)(iVar14 + 0x40)" (* "*") (cast_expression "(int *)(iVar14 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x40)" (( "(") (binary_expression "iVar14 + 0x40" (identifier "iVar14") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x0028cba5;" (goto "goto") (statement_identifier "code_r0x0028cba5") (; ";"))) (goto_statement "goto code_r0x0028c8f8;" (goto "goto") (statement_identifier "code_r0x0028c8f8") (; ";"))) (case_statement "default:\n                if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }\n                goto code_r0x0028c951;" (default "default") (: ":") (if_statement "if (*(int *)(iVar14 + 0x40) != 0) {\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }" (if "if") (parenthesized_expression "(*(int *)(iVar14 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar14 + 0x40) != 0" (pointer_expression "*(int *)(iVar14 + 0x40)" (* "*") (cast_expression "(int *)(iVar14 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x40)" (( "(") (binary_expression "iVar14 + 0x40" (identifier "iVar14") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  lVar16 = (longdouble)0;\n                  goto code_r0x0028cba5;\n                }" ({ "{") (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" (identifier "lVar16") (= "=") (cast_expression "(longdouble)0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (number_literal "0"))) (; ";")) (goto_statement "goto code_r0x0028cba5;" (goto "goto") (statement_identifier "code_r0x0028cba5") (; ";")) (} "}"))) (goto_statement "goto code_r0x0028c951;" (goto "goto") (statement_identifier "code_r0x0028c951") (; ";"))) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                iVar14 = *(int *)(iVar6 + 0x2a8);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n                goto code_r0x0028c89f;" (case "case") (number_literal "8") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (= "=") (binary_expression "lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (* "*") (cast_expression "(longdouble)DAT_0029f710" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0029f710")))) (; ";")) (if_statement "if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;" (if "if") (parenthesized_expression "(*(int *)(iVar14 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar14 + 0x40) != 0" (pointer_expression "*(int *)(iVar14 + 0x40)" (* "*") (cast_expression "(int *)(iVar14 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x40)" (( "(") (binary_expression "iVar14 + 0x40" (identifier "iVar14") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x0028cba5;" (goto "goto") (statement_identifier "code_r0x0028cba5") (; ";"))) (goto_statement "goto code_r0x0028c89f;" (goto "goto") (statement_identifier "code_r0x0028c89f") (; ";"))) (} "}"))) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;" (if "if") (parenthesized_expression "(*(int *)(iVar14 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar14 + 0x40) != 0" (pointer_expression "*(int *)(iVar14 + 0x40)" (* "*") (cast_expression "(int *)(iVar14 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x40)" (( "(") (binary_expression "iVar14 + 0x40" (identifier "iVar14") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x0028cba5;" (goto "goto") (statement_identifier "code_r0x0028cba5") (; ";"))) (goto_statement "goto code_r0x0028c951;" (goto "goto") (statement_identifier "code_r0x0028c951") (; ";")) (} "}"))) (if_statement "if ((uVar11 & 0x20002) == 0) {\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }" (if "if") (parenthesized_expression "((uVar11 & 0x20002) == 0)" (( "(") (binary_expression "(uVar11 & 0x20002) == 0" (parenthesized_expression "(uVar11 & 0x20002)" (( "(") (binary_expression "uVar11 & 0x20002" (identifier "uVar11") (& "&") (number_literal "0x20002")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }\n              switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uStack_103c & 0xffff);\n              iVar14 = *(int *)(iVar6 + 0x2a8);\ncode_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;\n              goto code_r0x0028cbc9;\n            }" ({ "{") (if_statement "if (uVar12 == 0) {\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x0028cd74:\n                lVar16 = (longdouble)0;\n                goto code_r0x0028cc3c;\n              }" ({ "{") (labeled_statement "code_r0x0028cd74:\n                lVar16 = (longdouble)0;" (statement_identifier "code_r0x0028cd74") (: ":") (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" (identifier "lVar16") (= "=") (cast_expression "(longdouble)0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (number_literal "0"))) (; ";"))) (goto_statement "goto code_r0x0028cc3c;" (goto "goto") (statement_identifier "code_r0x0028cc3c") (; ";")) (} "}"))) (switch_statement "switch(uVar10) {\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n              default:\n                goto code_r0x0028cd74;\n              case 2:\n              case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);\n              }" ({ "{") (case_statement "default:\n                goto code_r0x0028cd74;" (default "default") (: ":") (goto_statement "goto code_r0x0028cd74;" (goto "goto") (statement_identifier "code_r0x0028cd74") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n                uStack_103c = ReadBlobShort(iVar6);\n                break;" (case "case") (number_literal "3") (: ":") (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" (identifier "uStack_103c") (= "=") (call_expression "ReadBlobShort(iVar6)" (identifier "ReadBlobShort") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n                uStack_103c = ReadBlobLong(iVar6);\n                break;" (case "case") (number_literal "5") (: ":") (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" (identifier "uStack_103c") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                goto code_r0x0028cc20;" (case "case") (number_literal "6") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (goto_statement "goto code_r0x0028cc20;" (goto "goto") (statement_identifier "code_r0x0028cc20") (; ";"))) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);" (case "case") (number_literal "8") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (labeled_statement "code_r0x0028cc20:\n                uStack_103c = (uint)ROUND(lVar16);" (statement_identifier "code_r0x0028cc20") (: ":") (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" (identifier "uStack_103c") (= "=") (cast_expression "(uint)ROUND(lVar16)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "ROUND(lVar16)" (identifier "ROUND") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))))) (; ";")))) (} "}"))) (expression_statement "lVar16 = (longdouble)(uStack_103c & 0xffff);" (assignment_expression "lVar16 = (longdouble)(uStack_103c & 0xffff)" (identifier "lVar16") (= "=") (call_expression "(longdouble)(uStack_103c & 0xffff)" (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")")) (argument_list "(uStack_103c & 0xffff)" (( "(") (binary_expression "uStack_103c & 0xffff" (identifier "uStack_103c") (& "&") (number_literal "0xffff")) () ")")))) (; ";")) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (labeled_statement "code_r0x0028cc3c:\n              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;" (statement_identifier "code_r0x0028cc3c") (: ":") (if_statement "if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;" (if "if") (parenthesized_expression "(*(int *)(iVar14 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar14 + 0x40) != 0" (pointer_expression "*(int *)(iVar14 + 0x40)" (* "*") (cast_expression "(int *)(iVar14 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x40)" (( "(") (binary_expression "iVar14 + 0x40" (identifier "iVar14") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x0028cba5;" (goto "goto") (statement_identifier "code_r0x0028cba5") (; ";")))) (goto_statement "goto code_r0x0028cbc9;" (goto "goto") (statement_identifier "code_r0x0028cbc9") (; ";")) (} "}"))) (switch_statement "switch(uVar10) {\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n            case 0:\n            case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;\n            case 2:\n            case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;\n            case 4:\n            case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;\n            case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;\n            default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;\n            case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);\n            }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 1:\n              uStack_103e = ReadBlobByte(iVar6);\n              break;" (case "case") (number_literal "1") (: ":") (expression_statement "uStack_103e = ReadBlobByte(iVar6);" (assignment_expression "uStack_103e = ReadBlobByte(iVar6)" (identifier "uStack_103e") (= "=") (call_expression "ReadBlobByte(iVar6)" (identifier "ReadBlobByte") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n              uStack_103e = ReadBlobShort(iVar6);\n              break;" (case "case") (number_literal "3") (: ":") (expression_statement "uStack_103e = ReadBlobShort(iVar6);" (assignment_expression "uStack_103e = ReadBlobShort(iVar6)" (identifier "uStack_103e") (= "=") (call_expression "ReadBlobShort(iVar6)" (identifier "ReadBlobShort") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n              uStack_103e = ReadBlobLong(iVar6);\n              break;" (case "case") (number_literal "5") (: ":") (expression_statement "uStack_103e = ReadBlobLong(iVar6);" (assignment_expression "uStack_103e = ReadBlobLong(iVar6)" (identifier "uStack_103e") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n              lVar16 = (longdouble)ReadBlobFloat(iVar6);\n              goto code_r0x0028cda5;" (case "case") (number_literal "6") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (goto_statement "goto code_r0x0028cda5;" (goto "goto") (statement_identifier "code_r0x0028cda5") (; ";"))) (case_statement "default:\n              lVar16 = (longdouble)0;\n              goto code_r0x0028cdc8;" (default "default") (: ":") (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" (identifier "lVar16") (= "=") (cast_expression "(longdouble)0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (number_literal "0"))) (; ";")) (goto_statement "goto code_r0x0028cdc8;" (goto "goto") (statement_identifier "code_r0x0028cdc8") (; ";"))) (case_statement "case 8:\n              lVar16 = (longdouble)ReadBlobDouble(iVar6);\ncode_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);" (case "case") (number_literal "8") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (labeled_statement "code_r0x0028cda5:\n              uStack_103e = (ushort)ROUND(lVar16);" (statement_identifier "code_r0x0028cda5") (: ":") (expression_statement "uStack_103e = (ushort)ROUND(lVar16);" (assignment_expression "uStack_103e = (ushort)ROUND(lVar16)" (identifier "uStack_103e") (= "=") (cast_expression "(ushort)ROUND(lVar16)" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (call_expression "ROUND(lVar16)" (identifier "ROUND") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))))) (; ";")))) (} "}"))) (expression_statement "lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0" (identifier "lVar16") (= "=") (binary_expression "(longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0" (call_expression "(longdouble)(uStack_103e & 0xff)" (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")")) (argument_list "(uStack_103e & 0xff)" (( "(") (binary_expression "uStack_103e & 0xff" (identifier "uStack_103e") (& "&") (number_literal "0xff")) () ")"))) (* "*") (cast_expression "(longdouble)DAT_002a7ff0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002a7ff0")))) (; ";")) (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (labeled_statement "code_r0x0028cdc8:\n            if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }" (statement_identifier "code_r0x0028cdc8") (: ":") (if_statement "if (*(int *)(iVar14 + 0x40) == 0) {\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar14 + 0x40) == 0)" (( "(") (binary_expression "*(int *)(iVar14 + 0x40) == 0" (pointer_expression "*(int *)(iVar14 + 0x40)" (* "*") (cast_expression "(int *)(iVar14 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x40)" (( "(") (binary_expression "iVar14 + 0x40" (identifier "iVar14") (+ "+") (number_literal "0x40")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }\n              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;\n              goto code_r0x0028c8c0;\n            }" ({ "{") (labeled_statement "code_r0x0028cdd5:\n              switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }" (statement_identifier "code_r0x0028cdd5") (: ":") (switch_statement "switch(uVar10) {\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n              case 0:\n              case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;\n              case 2:\n              case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;\n              case 4:\n              case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;\n              case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n              }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 1:\ncode_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);\n                break;" (case "case") (number_literal "1") (: ":") (labeled_statement "code_r0x0028c96b:\n                uVar5 = ReadBlobByte(iVar6);" (statement_identifier "code_r0x0028c96b") (: ":") (expression_statement "uVar5 = ReadBlobByte(iVar6);" (assignment_expression "uVar5 = ReadBlobByte(iVar6)" (identifier "uVar5") (= "=") (call_expression "ReadBlobByte(iVar6)" (identifier "ReadBlobByte") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n                uVar5 = ReadBlobShort(iVar6);\n                break;" (case "case") (number_literal "3") (: ":") (expression_statement "uVar5 = ReadBlobShort(iVar6);" (assignment_expression "uVar5 = ReadBlobShort(iVar6)" (identifier "uVar5") (= "=") (call_expression "ReadBlobShort(iVar6)" (identifier "ReadBlobShort") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n                uVar5 = ReadBlobLong(iVar6);\n                break;" (case "case") (number_literal "5") (: ":") (expression_statement "uVar5 = ReadBlobLong(iVar6);" (assignment_expression "uVar5 = ReadBlobLong(iVar6)" (identifier "uVar5") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);\n                break;" (case "case") (number_literal "6") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" (identifier "uVar5") (= "=") (cast_expression "(ushort)ROUND(lVar16)" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (call_expression "ROUND(lVar16)" (identifier "ROUND") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n                goto code_r0x0028ca36;" (default "default") (: ":") (goto_statement "goto code_r0x0028ca36;" (goto "goto") (statement_identifier "code_r0x0028ca36") (; ";"))) (case_statement "case 8:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                uVar5 = (ushort)ROUND(lVar16);" (case "case") (number_literal "8") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (expression_statement "uVar5 = (ushort)ROUND(lVar16);" (assignment_expression "uVar5 = (ushort)ROUND(lVar16)" (identifier "uVar5") (= "=") (cast_expression "(ushort)ROUND(lVar16)" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (call_expression "ROUND(lVar16)" (identifier "ROUND") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))))) (; ";"))) (} "}")))) (expression_statement "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;" (assignment_expression "lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" (identifier "lVar16") (= "=") (binary_expression "(longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0" (call_expression "(longdouble)(uVar5 & 0xff)" (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")")) (argument_list "(uVar5 & 0xff)" (( "(") (binary_expression "uVar5 & 0xff" (identifier "uVar5") (& "&") (number_literal "0xff")) () ")"))) (* "*") (cast_expression "(longdouble)DAT_002a7ff0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002a7ff0")))) (; ";")) (goto_statement "goto code_r0x0028c8c0;" (goto "goto") (statement_identifier "code_r0x0028c8c0") (; ";")) (} "}")))) (labeled_statement "code_r0x0028cba5:\n            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;" (statement_identifier "code_r0x0028cba5") (: ":") (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8)" (* "*") (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x44) * 8)" (( "(") (binary_expression "iVar7 + *(int *)(iVar14 + 0x44) * 8" (identifier "iVar7") (+ "+") (binary_expression "*(int *)(iVar14 + 0x44) * 8" (pointer_expression "*(int *)(iVar14 + 0x44)" (* "*") (cast_expression "(int *)(iVar14 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x44)" (( "(") (binary_expression "iVar14 + 0x44" (identifier "iVar14") (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (= "=") (cast_expression "(double)lVar16" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "lVar16"))) (; ";"))) (if_statement "if (uVar15 == 0) {\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }\n            else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }" (if "if") (parenthesized_expression "(uVar15 == 0)" (( "(") (binary_expression "uVar15 == 0" (identifier "uVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;\ncode_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }\ncode_r0x0028ca36:\n              lVar16 = (longdouble)0;\n            }" ({ "{") (if_statement "if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;" (if "if") (parenthesized_expression "((uVar11 & 0x20002) != 0)" (( "(") (binary_expression "(uVar11 & 0x20002) != 0" (parenthesized_expression "(uVar11 & 0x20002)" (( "(") (binary_expression "uVar11 & 0x20002" (identifier "uVar11") (& "&") (number_literal "0x20002")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x0028cdd5;" (goto "goto") (statement_identifier "code_r0x0028cdd5") (; ";"))) (labeled_statement "code_r0x0028cbc9:\n              if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }" (statement_identifier "code_r0x0028cbc9") (: ":") (if_statement "if (uVar12 != 0) {\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }" (if "if") (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }\n                uStack_103c = (uint)ROUND(lVar16);\n                goto code_r0x0028c9a2;\n              }" ({ "{") (switch_statement "switch(uVar10) {\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n                default:\n                  goto code_r0x0028ca36;\n                case 2:\n                case 3:\n                  goto code_r0x0028c995;\n                case 4:\n                case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;\n                case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;\n                case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                }" ({ "{") (case_statement "default:\n                  goto code_r0x0028ca36;" (default "default") (: ":") (goto_statement "goto code_r0x0028ca36;" (goto "goto") (statement_identifier "code_r0x0028ca36") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\n                  goto code_r0x0028c995;" (case "case") (number_literal "3") (: ":") (goto_statement "goto code_r0x0028c995;" (goto "goto") (statement_identifier "code_r0x0028c995") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n                  uStack_103c = ReadBlobLong(iVar6);\n                  goto code_r0x0028c9a2;" (case "case") (number_literal "5") (: ":") (expression_statement "uStack_103c = ReadBlobLong(iVar6);" (assignment_expression "uStack_103c = ReadBlobLong(iVar6)" (identifier "uStack_103c") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (goto_statement "goto code_r0x0028c9a2;" (goto "goto") (statement_identifier "code_r0x0028c9a2") (; ";"))) (case_statement "case 6:\n                  lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                  break;" (case "case") (number_literal "6") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 8:\n                  lVar16 = (longdouble)ReadBlobDouble(iVar6);" (case "case") (number_literal "8") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";"))) (} "}"))) (expression_statement "uStack_103c = (uint)ROUND(lVar16);" (assignment_expression "uStack_103c = (uint)ROUND(lVar16)" (identifier "uStack_103c") (= "=") (cast_expression "(uint)ROUND(lVar16)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "ROUND(lVar16)" (identifier "ROUND") (argument_list "(lVar16)" (( "(") (identifier "lVar16") () ")"))))) (; ";")) (goto_statement "goto code_r0x0028c9a2;" (goto "goto") (statement_identifier "code_r0x0028c9a2") (; ";")) (} "}")))) (labeled_statement "code_r0x0028ca36:\n              lVar16 = (longdouble)0;" (statement_identifier "code_r0x0028ca36") (: ":") (expression_statement "lVar16 = (longdouble)0;" (assignment_expression "lVar16 = (longdouble)0" (identifier "lVar16") (= "=") (cast_expression "(longdouble)0" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (number_literal "0"))) (; ";"))) (} "}")) (else_clause "else {\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }" (else "else") (compound_statement "{\ncode_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }\n            }" ({ "{") (labeled_statement "code_r0x0028c951:\n              switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" (statement_identifier "code_r0x0028c951") (: ":") (switch_statement "switch(uVar10) {\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" (switch "switch") (parenthesized_expression "(uVar10)" (( "(") (identifier "uVar10") () ")")) (compound_statement "{\n              case 0:\n              case 1:\n                goto code_r0x0028c96b;\n              case 2:\n              case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;\n              case 4:\n              case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;\n              case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;\n              default:\n                goto code_r0x0028ca36;\n              case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n              }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 1:\n                goto code_r0x0028c96b;" (case "case") (number_literal "1") (: ":") (goto_statement "goto code_r0x0028c96b;" (goto "goto") (statement_identifier "code_r0x0028c96b") (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:\ncode_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);\ncode_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);\n                break;" (case "case") (number_literal "3") (: ":") (labeled_statement "code_r0x0028c995:\n                uStack_103c = ReadBlobShort(iVar6);" (statement_identifier "code_r0x0028c995") (: ":") (expression_statement "uStack_103c = ReadBlobShort(iVar6);" (assignment_expression "uStack_103c = ReadBlobShort(iVar6)" (identifier "uStack_103c") (= "=") (call_expression "ReadBlobShort(iVar6)" (identifier "ReadBlobShort") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";"))) (labeled_statement "code_r0x0028c9a2:\n                lVar16 = (longdouble)(uStack_103c & 0xffff);" (statement_identifier "code_r0x0028c9a2") (: ":") (expression_statement "lVar16 = (longdouble)(uStack_103c & 0xffff);" (assignment_expression "lVar16 = (longdouble)(uStack_103c & 0xffff)" (identifier "lVar16") (= "=") (call_expression "(longdouble)(uStack_103c & 0xffff)" (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")")) (argument_list "(uStack_103c & 0xffff)" (( "(") (binary_expression "uStack_103c & 0xffff" (identifier "uStack_103c") (& "&") (number_literal "0xffff")) () ")")))) (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 5:\n                uVar13 = ReadBlobLong(iVar6);\n                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;\n                break;" (case "case") (number_literal "5") (: ":") (expression_statement "uVar13 = ReadBlobLong(iVar6);" (assignment_expression "uVar13 = ReadBlobLong(iVar6)" (identifier "uVar13") (= "=") (call_expression "ReadBlobLong(iVar6)" (identifier "ReadBlobLong") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;" (assignment_expression "lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec" (identifier "lVar16") (= "=") (binary_expression "(longdouble)uVar13 / (longdouble)DAT_002a7fec" (cast_expression "(longdouble)uVar13" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "uVar13")) (/ "/") (cast_expression "(longdouble)DAT_002a7fec" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_002a7fec")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\ncode_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;\n                break;" (case "case") (number_literal "6") (: ":") (labeled_statement "code_r0x0028c8f8:\n                lVar16 = (longdouble)ReadBlobFloat(iVar6);" (statement_identifier "code_r0x0028c8f8") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobFloat(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobFloat(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobFloat(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobFloat(iVar6)" (identifier "ReadBlobFloat") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";"))) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (= "=") (binary_expression "lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (* "*") (cast_expression "(longdouble)DAT_0029f710" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0029f710")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n                goto code_r0x0028ca36;" (default "default") (: ":") (goto_statement "goto code_r0x0028ca36;" (goto "goto") (statement_identifier "code_r0x0028ca36") (; ";"))) (case_statement "case 8:\ncode_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);\n                lVar16 = lVar16 * (longdouble)DAT_0029f710;" (case "case") (number_literal "8") (: ":") (labeled_statement "code_r0x0028c89f:\n                lVar16 = (longdouble)ReadBlobDouble(iVar6);" (statement_identifier "code_r0x0028c89f") (: ":") (expression_statement "lVar16 = (longdouble)ReadBlobDouble(iVar6);" (assignment_expression "lVar16 = (longdouble)ReadBlobDouble(iVar6)" (identifier "lVar16") (= "=") (cast_expression "(longdouble)ReadBlobDouble(iVar6)" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (call_expression "ReadBlobDouble(iVar6)" (identifier "ReadBlobDouble") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))))) (; ";"))) (expression_statement "lVar16 = lVar16 * (longdouble)DAT_0029f710;" (assignment_expression "lVar16 = lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (= "=") (binary_expression "lVar16 * (longdouble)DAT_0029f710" (identifier "lVar16") (* "*") (cast_expression "(longdouble)DAT_0029f710" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0029f710")))) (; ";"))) (} "}")))) (} "}")))) (labeled_statement "code_r0x0028c8c0:\n            iVar14 = *(int *)(iVar6 + 0x2a8);" (statement_identifier "code_r0x0028c8c0") (: ":") (expression_statement "iVar14 = *(int *)(iVar6 + 0x2a8);" (assignment_expression "iVar14 = *(int *)(iVar6 + 0x2a8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar6 + 0x2a8)" (* "*") (cast_expression "(int *)(iVar6 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2a8)" (( "(") (binary_expression "iVar6 + 0x2a8" (identifier "iVar6") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";"))) (labeled_statement "code_r0x0028c1d8:\n            if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }" (statement_identifier "code_r0x0028c1d8") (: ":") (if_statement "if (*(int *)(iVar14 + 0x34) != 0) {\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar14 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar14 + 0x34) != 0" (pointer_expression "*(int *)(iVar14 + 0x34)" (* "*") (cast_expression "(int *)(iVar14 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x34)" (( "(") (binary_expression "iVar14 + 0x34" (identifier "iVar14") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;\n            }" ({ "{") (expression_statement "*(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;" (assignment_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16" (pointer_expression "*(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8)" (* "*") (cast_expression "(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + *(int *)(iVar14 + 0x38) * 8)" (( "(") (binary_expression "iVar7 + *(int *)(iVar14 + 0x38) * 8" (identifier "iVar7") (+ "+") (binary_expression "*(int *)(iVar14 + 0x38) * 8" (pointer_expression "*(int *)(iVar14 + 0x38)" (* "*") (cast_expression "(int *)(iVar14 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x38)" (( "(") (binary_expression "iVar14 + 0x38" (identifier "iVar14") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (= "=") (cast_expression "(double)lVar16" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "lVar16"))) (; ";")) (} "}")))) (labeled_statement "code_r0x0028bc60:\n            local_106c = local_106c + 1;" (statement_identifier "code_r0x0028bc60") (: ":") (expression_statement "local_106c = local_106c + 1;" (assignment_expression "local_106c = local_106c + 1" (identifier "local_106c") (= "=") (binary_expression "local_106c + 1" (identifier "local_106c") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;" (assignment_expression "iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8" (identifier "iVar7") (= "=") (binary_expression "iVar7 + *(int *)(iVar6 + 0x298) * 8" (identifier "iVar7") (+ "+") (binary_expression "*(int *)(iVar6 + 0x298) * 8" (pointer_expression "*(int *)(iVar6 + 0x298)" (* "*") (cast_expression "(int *)(iVar6 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x298)" (( "(") (binary_expression "iVar6 + 0x298" (identifier "iVar6") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_106c < *(int *)(iVar6 + 0x18))" (( "(") (binary_expression "local_106c < *(int *)(iVar6 + 0x18)" (identifier "local_106c") (< "<") (pointer_expression "*(int *)(iVar6 + 0x18)" (* "*") (cast_expression "(int *)(iVar6 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x18)" (( "(") (binary_expression "iVar6 + 0x18" (identifier "iVar6") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar7 = SyncAuthenticPixels(iVar6,param_2);" (assignment_expression "iVar7 = SyncAuthenticPixels(iVar6,param_2)" (identifier "iVar7") (= "=") (call_expression "SyncAuthenticPixels(iVar6,param_2)" (identifier "SyncAuthenticPixels") (argument_list "(iVar6,param_2)" (( "(") (identifier "iVar6") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) goto code_r0x0028c2d0;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x0028c2d0;" (goto "goto") (statement_identifier "code_r0x0028c2d0") (; ";"))) (expression_statement "iStack_1058 = iStack_1058 + 1;" (assignment_expression "iStack_1058 = iStack_1058 + 1" (identifier "iStack_1058") (= "=") (binary_expression "iStack_1058 + 1" (identifier "iStack_1058") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iStack_1058 < *(int *)(iVar6 + 0x1c))" (( "(") (binary_expression "iStack_1058 < *(int *)(iVar6 + 0x1c)" (identifier "iStack_1058") (< "<") (pointer_expression "*(int *)(iVar6 + 0x1c)" (* "*") (cast_expression "(int *)(iVar6 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x1c)" (( "(") (binary_expression "iVar6 + 0x1c" (identifier "iVar6") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (labeled_statement "code_r0x0028c2d7:\n    iStack_1024 = 0;" (statement_identifier "code_r0x0028c2d7") (: ":") (expression_statement "iStack_1024 = 0;" (assignment_expression "iStack_1024 = 0" (identifier "iStack_1024") (= "=") (number_literal "0")) (; ";"))) (while_statement "while (iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0) {\n      auStack_1020[iVar7] = 0;\n      if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }\n    }" (while "while") (parenthesized_expression "(iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0)" (( "(") (comma_expression "iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0" (assignment_expression "iVar7 = ReadBlob(iVar6,0xfff,auStack_1020)" (identifier "iVar7") (= "=") (call_expression "ReadBlob(iVar6,0xfff,auStack_1020)" (identifier "ReadBlob") (argument_list "(iVar6,0xfff,auStack_1020)" (( "(") (identifier "iVar6") (, ",") (number_literal "0xfff") (, ",") (identifier "auStack_1020") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n      auStack_1020[iVar7] = 0;\n      if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }\n    }" ({ "{") (expression_statement "auStack_1020[iVar7] = 0;" (assignment_expression "auStack_1020[iVar7] = 0" (subscript_expression "auStack_1020[iVar7]" (identifier "auStack_1020") ([ "[") (identifier "iVar7") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (iStack_1024 == 0) {\n        iStack_1024 = ConstantString(auStack_1020);\n      }\n      else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }" (if "if") (parenthesized_expression "(iStack_1024 == 0)" (( "(") (binary_expression "iStack_1024 == 0" (identifier "iStack_1024") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iStack_1024 = ConstantString(auStack_1020);\n      }" ({ "{") (expression_statement "iStack_1024 = ConstantString(auStack_1020);" (assignment_expression "iStack_1024 = ConstantString(auStack_1020)" (identifier "iStack_1024") (= "=") (call_expression "ConstantString(auStack_1020)" (identifier "ConstantString") (argument_list "(auStack_1020)" (( "(") (identifier "auStack_1020") () ")")))) (; ";")) (} "}")) (else_clause "else {\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }" (else "else") (compound_statement "{\n        ConcatenateString(&iStack_1024,auStack_1020);\n      }" ({ "{") (expression_statement "ConcatenateString(&iStack_1024,auStack_1020);" (call_expression "ConcatenateString(&iStack_1024,auStack_1020)" (identifier "ConcatenateString") (argument_list "(&iStack_1024,auStack_1020)" (( "(") (pointer_expression "&iStack_1024" (& "&") (identifier "iStack_1024")) (, ",") (identifier "auStack_1020") () ")"))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (iStack_1024 != 0) {\n      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);\n      iStack_1024 = RelinquishMagickMemory(iStack_1024);\n    }" (if "if") (parenthesized_expression "(iStack_1024 != 0)" (( "(") (binary_expression "iStack_1024 != 0" (identifier "iStack_1024") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);\n      iStack_1024 = RelinquishMagickMemory(iStack_1024);\n    }" ({ "{") (expression_statement "SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);" (call_expression "SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2)" (identifier "SetImageProperty") (argument_list "(iVar6,"vips:metadata",iStack_1024,param_2)" (( "(") (identifier "iVar6") (, ",") (string_literal ""vips:metadata"" (" """) (string_content "vips:metadata") (" """)) (, ",") (identifier "iStack_1024") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "iStack_1024 = RelinquishMagickMemory(iStack_1024);" (assignment_expression "iStack_1024 = RelinquishMagickMemory(iStack_1024)" (identifier "iStack_1024") (= "=") (call_expression "RelinquishMagickMemory(iStack_1024)" (identifier "RelinquishMagickMemory") (argument_list "(iStack_1024)" (( "(") (identifier "iStack_1024") () ")")))) (; ";")) (} "}"))) (expression_statement "CloseBlob(iVar6);" (call_expression "CloseBlob(iVar6)" (identifier "CloseBlob") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";")) (if_statement "if (bVar3) goto LAB_0028b7fb;" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (goto_statement "goto LAB_0028b7fb;" (goto "goto") (statement_identifier "LAB_0028b7fb") (; ";"))) (} "}")) (else_clause "else {\ncode_r0x0028b983:\n    pcVar17 = "Unsupported combination of band format and colorspace";\n    uVar8 = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;\nLAB_0028b7e8:\n    CloseBlob(iVar6);\n    DestroyImageList(iVar6);\n  }" (else "else") (compound_statement "{\ncode_r0x0028b983:\n    pcVar17 = "Unsupported combination of band format and colorspace";\n    uVar8 = 0x1f2;\nLAB_0028b9a2:\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;\nLAB_0028b7e8:\n    CloseBlob(iVar6);\n    DestroyImageList(iVar6);\n  }" ({ "{") (labeled_statement "code_r0x0028b983:\n    pcVar17 = "Unsupported combination of band format and colorspace";" (statement_identifier "code_r0x0028b983") (: ":") (expression_statement "pcVar17 = "Unsupported combination of band format and colorspace";" (assignment_expression "pcVar17 = "Unsupported combination of band format and colorspace"" (identifier "pcVar17") (= "=") (string_literal ""Unsupported combination of band format and colorspace"" (" """) (string_content "Unsupported combination of band format and colorspace") (" """))) (; ";"))) (expression_statement "uVar8 = 0x1f2;" (assignment_expression "uVar8 = 0x1f2" (identifier "uVar8") (= "=") (number_literal "0x1f2")) (; ";")) (labeled_statement "LAB_0028b9a2:\n    ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;" (statement_identifier "LAB_0028b9a2") (: ":") (expression_statement "ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)\n    ;" (call_expression "ThrowMagickException\n              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)" (identifier "ThrowMagickException") (argument_list "(param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)" (( "(") (identifier "param_2") (, ",") (string_literal ""coders/vips.c"" (" """) (string_content "coders/vips.c") (" """)) (, ",") (string_literal ""ReadVIPSImage"" (" """) (string_content "ReadVIPSImage") (" """)) (, ",") (identifier "uVar8") (, ",") (number_literal "0x1c2") (, ",") (identifier "pcVar17") (, ",") (string_literal ""`%s\'"" (" """) (string_content "`%s") (escape_sequence "\'") (" """)) (, ",") (binary_expression "param_1 + 0x21f0" (identifier "param_1") (+ "+") (number_literal "0x21f0")) () ")"))) (; ";"))) (labeled_statement "LAB_0028b7e8:\n    CloseBlob(iVar6);" (statement_identifier "LAB_0028b7e8") (: ":") (expression_statement "CloseBlob(iVar6);" (call_expression "CloseBlob(iVar6)" (identifier "CloseBlob") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";"))) (expression_statement "DestroyImageList(iVar6);" (call_expression "DestroyImageList(iVar6)" (identifier "DestroyImageList") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_0028b7f9:\n  iVar6 = 0;" (statement_identifier "LAB_0028b7f9") (: ":") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";"))) (labeled_statement "LAB_0028b7fb:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar6;\n  }" (statement_identifier "LAB_0028b7fb") (: ":") (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar6;\n  }" (if "if") (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return iVar6;\n  }" ({ "{") (return_statement "return iVar6;" (return "return") (identifier "iVar6") (; ";")) (} "}")))) (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" (identifier "FUN_0029eab0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* 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)

{
  int var_52;
  bool bVar2;
  type_4 uVar3;
  type_1 *var_14;
  type_5 var_9;
  type_6 var_12;
  type_6 var_25;
  type_6 var_26;
  type_6 var_24;
  type_7 *var_28;
  ssize_t var_45;
  type_6 var_31;
  type_8 *pPVar12;
  type_6 var_29;
  int var_1;
  double var_34;
  float var_20;
  float var_22;
  size_t line;
  char *tag;
  int var_41;
  int var_43;
  type_4 local_103e;
  char *var_46;
  char buffer [4096];
  
  var_52 = *(int *)(var_1 + 0x14);
  if (var_2 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");
  }
  if (var_2->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,
                  "ReadVIPSImage");
  }
  if (var_2->debug != var_4) {
    var_5(TraceEvent,"coders/vips.c","ReadVIPSImage",0x18a,"%s",var_2->filename);
  }
  if (var_6 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");
  }
  if (var_6->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,
                  "ReadVIPSImage");
  }
  var_14 = var_7(var_2,var_6);
  var_9 = var_8(var_2,var_14,ReadBinaryBlobMode,var_6);
  if (var_9 == var_4) {
    var_10(var_14);
    var_14 = (type_1 *)0x0;
    goto LAB_0028b7fb;
  }
  var_12 = var_11(var_14);
  if (var_12 != 0x8f2a6b6) {
    if (var_12 == 0xb6a6f208) {
      var_14->endian = MSBEndian;
      goto LAB_0028b739;
    }
    var_13
              (var_6,"coders/vips.c","ReadVIPSImage",0x19c,CorruptImageError,
               "ImproperImageHeader","`%s\'",var_2->filename);
    if (var_14 != (type_1 *)0x0) goto LAB_0028b7e8;
    goto LAB_0028b7f9;
  }
  var_14->endian = LSBEndian;
LAB_0028b739:
  var_12 = var_15(var_14);
  var_14->columns = var_12;
  var_12 = var_15(var_14);
  var_14->rows = var_12;
  var_9 = var_16(var_14,var_14->columns,var_12,var_6);
  if (var_9 == var_4) {
    var_14 = var_10(var_14);
    goto LAB_0028b7fb;
  }
  var_12 = var_15(var_14);
  var_15(var_14);
  var_25 = var_15(var_14);
  switch(var_25) {
  case 0:
  case 1:
    var_14->depth = 8;
    break;
  case 2:
  case 3:
    var_14->depth = 0x10;
    break;
  case 4:
  case 5:
  case 6:
    var_14->depth = 0x20;
    break;
  default:
    tag = "Unsupported band format";
    line = 0x1bb;
    goto LAB_0028b9a2;
  case 8:
    var_14->depth = 0x40;
  }
  var_26 = var_15(var_14);
  var_24 = var_15(var_14);
  switch(var_24) {
  default:
    tag = "Unsupported colorspace";
    line = 0x1e2;
    goto LAB_0028b9a2;
  case 1:
  case 0x1a:
    var_17(var_14,GRAYColorspace,var_6);
    if (var_12 == 2) {
LAB_0028bb8c:
      var_14->alpha_trait = BlendPixelTrait;
    }
    break;
  case 0xf:
    var_17(var_14,var_39,var_6);
    if (var_12 == 5) {
LAB_0028bbbc:
      var_14->alpha_trait = BlendPixelTrait;
    }
    goto LAB_0028b9e4;
  case 0x11:
  case 0x19:
    var_17(var_14,RGBColorspace,var_6);
    if (var_12 == 4) goto LAB_0028bb8c;
    break;
  case 0x16:
    var_17(var_14,sRGBColorspace,var_6);
    if (var_12 == 4) goto LAB_0028bbbc;
LAB_0028b9e4:
    var_18(var_14,var_6);
    var_14->units = PixelsPerCentimeterResolution;
    var_20 = var_19(var_14);
    var_22 = var_21;
    (var_14->resolution).x = (double)(var_20 * var_21);
    var_20 = var_19(var_14);
    (var_14->resolution).y = (double)(var_22 * var_20);
    var_23(var_14);
    var_23(var_14);
    var_23(var_14);
    if (var_2->ping != var_4) goto LAB_0028b7fb;
    goto LAB_0028ba52;
  }
  var_18(var_14,var_6);
  var_14->units = PixelsPerCentimeterResolution;
  var_20 = var_19(var_14);
  var_22 = var_21;
  (var_14->resolution).x = (double)(var_20 * var_21);
  var_20 = var_19(var_14);
  (var_14->resolution).y = (double)(var_22 * var_20);
  var_23(var_14);
  var_23(var_14);
  var_23(var_14);
  if (var_2->ping != var_4) goto LAB_0028b7fb;
  if (var_24 < 0x1b) {
LAB_0028ba52:
    var_24 = 1 << ((type_9)var_24 & 0x1f);
    if (((var_24 & 0x428002) == 0) &&
       ((((var_24 & 0x6000000) == 0 || (8 < var_25)) || ((1 << ((type_9)var_25 & 0x1f) & 0x17cU) == 0))))
    goto LAB_0028b983;
    if (4 < var_12 - 1) {
      tag = "Unsupported number of channels";
      line = 500;
      goto LAB_0028b9a2;
    }
    if (var_26 != 0) {
      tag = "Unsupported coding";
      line = 0x1f8;
      goto LAB_0028b9a2;
    }
    if (0 < (int)var_14->rows) {
      var_43 = 0;
      do {
        var_28 = var_27(var_14,0,var_43,var_14->columns,1,var_6);
        if (var_28 == (type_7 *)0x0) {
LAB_0028c2d0:
          bVar2 = false;
          goto LAB_0028c2d7;
        }
        if (0 < (int)var_14->columns) {
          var_26 = var_24 & 0x6000000;
          var_29 = var_24 & 0x408000;
          var_41 = 0;
          do {
            if (var_29 != 0) {
              switch(var_25) {
              case 0:
              case 1:
                var_31 = var_30(var_14);
                var_34 = (double)(var_31 & 0xff) * (double)var_35;
                break;
              case 2:
              case 3:
                uVar3 = var_32(var_14);
                var_34 = (double)uVar3;
                break;
              case 4:
              case 5:
                var_31 = var_15(var_14);
                var_34 = (double)var_31 / (double)var_36;
                break;
              case 6:
                var_22 = var_19(var_14);
                var_34 = (double)var_22 * (double)var_37;
                break;
              default:
                pPVar12 = var_14->channel_map;
                var_28[pPVar12->offset] = 0.0;
                if (2 < var_12) goto LAB_0028bd09;
                var_34 = 0.0;
                goto LAB_0028bc37;
              case 8:
                var_34 = var_33(var_14);
                var_34 = var_34 * (double)var_37;
              }
              pPVar12 = var_14->channel_map;
              var_28[pPVar12->offset] = var_34;
              if (var_12 < 3) goto LAB_0028bc37;
LAB_0028bd09:
              switch(var_25) {
              case 0:
              case 1:
                var_31 = var_30(var_14);
                var_22 = (float)(var_31 & 0xff) * var_35;
                break;
              case 2:
              case 3:
                uVar3 = var_32(var_14);
                var_22 = (float)uVar3;
                break;
              case 4:
              case 5:
                var_31 = var_15(var_14);
                var_22 = (float)var_31 / var_36;
                break;
              case 6:
                var_22 = var_19(var_14);
                var_22 = var_22 * var_37;
                break;
              default:
                var_28[pPVar12[1].offset] = 0.0;
                goto LAB_0028be31;
              case 8:
                var_34 = var_33(var_14);
                var_22 = (float)var_34 * var_37;
              }
              var_28[var_14->channel_map[1].offset] = (double)var_22;
LAB_0028be31:
              switch(var_25) {
              case 0:
              case 1:
                goto _L310;
              case 2:
              case 3:
                goto _L312;
              case 4:
              case 5:
                var_31 = var_15(var_14);
                var_22 = (float)var_31 / var_36;
                break;
              case 6:
                var_22 = var_19(var_14);
                var_22 = var_22 * var_37;
                break;
              default:
                goto _L437;
              case 8:
                var_34 = var_33(var_14);
                var_22 = (float)var_34 * var_37;
              }
              goto LAB_0028be75;
            }
            if ((var_24 & 0x20002) == 0) {
              if (var_26 == 0) {
_L429:
                var_34 = 0.0;
              }
              else {
                switch(var_25) {
                default:
                  goto _L429;
                case 2:
                case 3:
                  uVar3 = var_32(var_14);
                  var_31 = (type_6)uVar3;
                  break;
                case 4:
                case 5:
                  var_31 = var_15(var_14);
                  break;
                case 6:
                  var_22 = var_19(var_14);
                  var_31 = (type_6)var_38(var_22);
                  break;
                case 8:
                  var_34 = var_33(var_14);
                  var_31 = (type_6)var_38(var_34);
                }
                var_34 = (double)(var_31 & 0xffff);
              }
              goto LAB_0028bc22;
            }
            switch(var_25) {
            case 0:
            case 1:
              var_31 = var_30(var_14);
              break;
            case 2:
            case 3:
              uVar3 = var_32(var_14);
              var_31 = (type_6)uVar3;
              break;
            case 4:
            case 5:
              var_31 = var_15(var_14);
              break;
            case 6:
              var_22 = var_19(var_14);
              local_103e = (type_4)var_38(var_22);
              goto LAB_0028c07a;
            default:
              goto _L429;
            case 8:
              var_34 = var_33(var_14);
              local_103e = (type_4)var_38(var_34);
LAB_0028c07a:
              var_31 = (type_6)local_103e;
            }
            var_34 = (double)(var_31 & 0xff) * (double)var_35;
LAB_0028bc22:
            pPVar12 = var_14->channel_map;
            var_28[pPVar12->offset] = var_34;
            if (var_12 < 3) {
LAB_0028bc37:
              var_28[pPVar12[1].offset] = var_34;
              var_28[pPVar12[2].offset] = var_34;
              if (var_12 == 2) {
                if (var_29 != 0) {
                  switch(var_25) {
                  case 0:
                  case 1:
                    goto _L358;
                  case 2:
                  case 3:
                    goto _L360;
                  case 4:
                  case 5:
                    goto _L361;
                  case 6:
                    goto _L362;
                  default:
                    goto _L443;
                  case 8:
                    goto _L363;
                  }
                }
                if ((var_24 & 0x20002) != 0) {
                  switch(var_25) {
                  case 0:
                  case 1:
                    goto _L358;
                  case 2:
                  case 3:
                    goto _L348;
                  case 4:
                  case 5:
                    goto _L349;
                  case 6:
                    goto _L350;
                  default:
                    goto _L443;
                  case 8:
                    goto _L351;
                  }
                }
                if (var_26 != 0) {
                  switch(var_25) {
                  default:
                    break;
                  case 2:
                  case 3:
                    goto _L360;
                  case 4:
                  case 5:
                    goto _L355;
                  case 6:
                    goto _L356;
                  case 8:
                    goto _L357;
                  }
                }
                goto _L443;
              }
              goto LAB_0028bc60;
            }
            if ((var_24 & 0x20002) == 0) {
              if (var_26 == 0) {
_L435:
                var_34 = 0.0;
              }
              else {
                switch(var_25) {
                default:
                  goto _L435;
                case 2:
                case 3:
                  uVar3 = var_32(var_14);
                  var_31 = (type_6)uVar3;
                  break;
                case 4:
                case 5:
                  var_31 = var_15(var_14);
                  break;
                case 6:
                  var_22 = var_19(var_14);
                  var_31 = (type_6)var_38(var_22);
                  break;
                case 8:
                  var_34 = var_33(var_14);
                  var_31 = (type_6)var_38(var_34);
                }
                var_34 = (double)(var_31 & 0xffff);
                pPVar12 = var_14->channel_map;
              }
              var_28[pPVar12[1].offset] = var_34;
              if (var_26 == 0) goto _L437;
              switch(var_25) {
              default:
                goto _L437;
              case 2:
              case 3:
_L312:
                uVar3 = var_32(var_14);
                var_31 = (type_6)uVar3;
                break;
              case 4:
              case 5:
                var_31 = var_15(var_14);
                break;
              case 6:
                var_22 = var_19(var_14);
                var_31 = (type_6)var_38(var_22);
                break;
              case 8:
                var_34 = var_33(var_14);
                var_31 = (type_6)var_38(var_34);
              }
              var_22 = (float)(var_31 & 0xffff);
              goto LAB_0028be75;
            }
            switch(var_25) {
            case 0:
            case 1:
              var_31 = var_30(var_14);
              break;
            case 2:
            case 3:
              uVar3 = var_32(var_14);
              var_31 = (type_6)uVar3;
              break;
            case 4:
            case 5:
              var_31 = var_15(var_14);
              break;
            case 6:
              var_22 = var_19(var_14);
              local_103e = (type_4)var_38(var_22);
              goto LAB_0028c4c8;
            default:
              var_22 = 0.0;
              goto LAB_0028c4eb;
            case 8:
              var_34 = var_33(var_14);
              local_103e = (type_4)var_38(var_34);
LAB_0028c4c8:
              var_31 = (type_6)local_103e;
            }
            var_22 = (float)(var_31 & 0xff) * var_35;
            pPVar12 = var_14->channel_map;
LAB_0028c4eb:
            var_28[pPVar12[1].offset] = (double)var_22;
            switch(var_25) {
            case 0:
            case 1:
_L310:
              var_31 = var_30(var_14);
              break;
            case 2:
            case 3:
              uVar3 = var_32(var_14);
              var_31 = (type_6)uVar3;
              break;
            case 4:
            case 5:
              var_31 = var_15(var_14);
              break;
            case 6:
              var_22 = var_19(var_14);
              var_31 = (type_6)(type_4)(short)var_38(var_22);
              break;
            default:
_L437:
              var_22 = 0.0;
              goto LAB_0028be75;
            case 8:
              var_34 = var_33(var_14);
              var_31 = (type_6)(type_4)(short)var_38(var_34);
            }
            var_22 = (float)(var_31 & 0xff) * var_35;
LAB_0028be75:
            pPVar12 = var_14->channel_map;
            var_28[pPVar12[2].offset] = (double)var_22;
            if (var_12 == 4) {
              if (var_14->colorspace == var_39) {
                if (var_29 == 0) {
                  if ((var_24 & 0x20002) == 0) {
                    if (var_26 == 0) {
_L440:
                      var_22 = 0.0;
                    }
                    else {
                      switch(var_25) {
                      default:
                        goto _L440;
                      case 2:
                      case 3:
                        goto _L337;
                      case 4:
                      case 5:
                        var_31 = var_15(var_14);
                        break;
                      case 6:
                        var_22 = var_19(var_14);
                        var_31 = (type_6)var_38(var_22);
                        break;
                      case 8:
                        var_34 = var_33(var_14);
                        var_31 = (type_6)var_38(var_34);
                      }
LAB_0028cafc:
                      var_22 = (float)(var_31 & 0xffff);
                      pPVar12 = var_14->channel_map;
                    }
                  }
                  else {
                    switch(var_25) {
                    case 0:
                    case 1:
                      goto _L335;
                    case 2:
                    case 3:
                      uVar3 = var_32(var_14);
                      var_31 = (type_6)uVar3;
                      break;
                    case 4:
                    case 5:
                      var_31 = var_15(var_14);
                      break;
                    case 6:
                      var_22 = var_19(var_14);
                      var_31 = (type_6)(type_4)(short)var_38(var_22);
                      break;
                    default:
                      goto _L440;
                    case 8:
                      var_34 = var_33(var_14);
                      var_31 = (type_6)(type_4)(short)var_38(var_34);
                    }
LAB_0028cabb:
                    var_22 = (float)(var_31 & 0xff) * var_35;
                    pPVar12 = var_14->channel_map;
                  }
                }
                else {
                  switch(var_25) {
                  case 0:
                  case 1:
_L335:
                    var_31 = var_30(var_14);
                    goto LAB_0028cabb;
                  case 2:
                  case 3:
_L337:
                    uVar3 = var_32(var_14);
                    var_31 = (type_6)uVar3;
                    goto LAB_0028cafc;
                  case 4:
                  case 5:
                    var_31 = var_15(var_14);
                    var_22 = (float)var_31 / var_36;
                    pPVar12 = var_14->channel_map;
                    break;
                  case 6:
                    var_22 = var_19(var_14);
                    pPVar12 = var_14->channel_map;
                    var_22 = var_22 * var_37;
                    break;
                  default:
                    goto _L440;
                  case 8:
                    var_34 = var_33(var_14);
                    pPVar12 = var_14->channel_map;
                    var_22 = (float)var_34 * var_37;
                  }
                }
                if (pPVar12[5].traits != var_40) {
                  var_28[pPVar12[5].offset] = (double)var_22;
                }
                goto LAB_0028bc60;
              }
              if (var_29 == 0) {
                if ((var_24 & 0x20002) == 0) {
                  if (var_26 == 0) {
_L443:
                    var_34 = 0.0;
                  }
                  else {
                    switch(var_25) {
                    default:
                      goto _L443;
                    case 2:
                    case 3:
                      goto _L360;
                    case 4:
                    case 5:
_L355:
                      var_31 = var_15(var_14);
                      break;
                    case 6:
_L356:
                      var_22 = var_19(var_14);
                      var_31 = (type_6)var_38(var_22);
                      break;
                    case 8:
_L357:
                      var_34 = var_33(var_14);
                      var_31 = (type_6)var_38(var_34);
                    }
LAB_0028c63d:
                    var_34 = (double)(var_31 & 0xffff);
                    pPVar12 = var_14->channel_map;
                  }
                }
                else {
                  switch(var_25) {
                  case 0:
                  case 1:
                    goto _L358;
                  case 2:
                  case 3:
_L348:
                    uVar3 = var_32(var_14);
                    var_31 = (type_6)uVar3;
                    break;
                  case 4:
                  case 5:
_L349:
                    var_31 = var_15(var_14);
                    break;
                  case 6:
_L350:
                    var_22 = var_19(var_14);
                    var_31 = (type_6)(type_4)(short)var_38(var_22);
                    break;
                  default:
                    goto _L443;
                  case 8:
_L351:
                    var_34 = var_33(var_14);
                    var_31 = (type_6)(type_4)(short)var_38(var_34);
                  }
LAB_0028c60d:
                  var_34 = (double)(var_31 & 0xff) * (double)var_35;
                  pPVar12 = var_14->channel_map;
                }
              }
              else {
                switch(var_25) {
                case 0:
                case 1:
_L358:
                  var_31 = var_30(var_14);
                  goto LAB_0028c60d;
                case 2:
                case 3:
_L360:
                  uVar3 = var_32(var_14);
                  var_31 = (type_6)uVar3;
                  goto LAB_0028c63d;
                case 4:
                case 5:
_L361:
                  var_31 = var_15(var_14);
                  var_34 = (double)var_31 / (double)var_36;
                  pPVar12 = var_14->channel_map;
                  break;
                case 6:
_L362:
                  var_22 = var_19(var_14);
                  pPVar12 = var_14->channel_map;
                  var_34 = (double)var_22 * (double)var_37;
                  break;
                default:
                  goto _L443;
                case 8:
_L363:
                  var_34 = var_33(var_14);
                  pPVar12 = var_14->channel_map;
                  var_34 = var_34 * (double)var_37;
                }
              }
              goto LAB_0028c1d8;
            }
            if (var_12 != 5) goto LAB_0028bc60;
            if (var_29 != 0) {
              switch(var_25) {
              case 0:
              case 1:
                var_31 = var_30(var_14);
                var_34 = (double)(var_31 & 0xff) * (double)var_35;
                break;
              case 2:
              case 3:
                uVar3 = var_32(var_14);
                var_34 = (double)uVar3;
                break;
              case 4:
              case 5:
                var_31 = var_15(var_14);
                var_34 = (double)var_31 / (double)var_36;
                break;
              case 6:
                var_22 = var_19(var_14);
                pPVar12 = var_14->channel_map;
                var_34 = (double)var_22 * (double)var_37;
                if (pPVar12[5].traits != var_40) goto LAB_0028cba5;
                goto _L391;
              default:
                if (pPVar12[5].traits != var_40) {
                  var_34 = 0.0;
                  goto LAB_0028cba5;
                }
                goto LAB_0028c951;
              case 8:
                var_34 = var_33(var_14);
                pPVar12 = var_14->channel_map;
                var_34 = var_34 * (double)var_37;
                if (pPVar12[5].traits != var_40) goto LAB_0028cba5;
                goto _L392;
              }
              pPVar12 = var_14->channel_map;
              if (pPVar12[5].traits != var_40) goto LAB_0028cba5;
              goto LAB_0028c951;
            }
            if ((var_24 & 0x20002) == 0) {
              if (var_26 == 0) {
_L445:
                var_34 = 0.0;
              }
              else {
                switch(var_25) {
                default:
                  goto _L445;
                case 2:
                case 3:
                  uVar3 = var_32(var_14);
                  var_31 = (type_6)uVar3;
                  break;
                case 4:
                case 5:
                  var_31 = var_15(var_14);
                  break;
                case 6:
                  var_22 = var_19(var_14);
                  var_31 = (type_6)var_38(var_22);
                  break;
                case 8:
                  var_34 = var_33(var_14);
                  var_31 = (type_6)var_38(var_34);
                }
                var_34 = (double)(var_31 & 0xffff);
                pPVar12 = var_14->channel_map;
              }
              if (pPVar12[5].traits != var_40) goto LAB_0028cba5;
              goto LAB_0028cbc9;
            }
            switch(var_25) {
            case 0:
            case 1:
              var_31 = var_30(var_14);
              break;
            case 2:
            case 3:
              uVar3 = var_32(var_14);
              var_31 = (type_6)uVar3;
              break;
            case 4:
            case 5:
              var_31 = var_15(var_14);
              break;
            case 6:
              var_22 = var_19(var_14);
              local_103e = (type_4)var_38(var_22);
              goto LAB_0028cda5;
            default:
              var_34 = 0.0;
              goto LAB_0028cdc8;
            case 8:
              var_34 = var_33(var_14);
              local_103e = (type_4)var_38(var_34);
LAB_0028cda5:
              var_31 = (type_6)local_103e;
            }
            var_34 = (double)(var_31 & 0xff) * (double)var_35;
            pPVar12 = var_14->channel_map;
LAB_0028cdc8:
            if (pPVar12[5].traits == var_40) {
LAB_0028cdd5:
              switch(var_25) {
              case 0:
              case 1:
_L409:
                var_31 = var_30(var_14);
                break;
              case 2:
              case 3:
                uVar3 = var_32(var_14);
                var_31 = (type_6)uVar3;
                break;
              case 4:
              case 5:
                var_31 = var_15(var_14);
                break;
              case 6:
                var_22 = var_19(var_14);
                var_31 = (type_6)(type_4)(short)var_38(var_22);
                break;
              default:
                goto _L448;
              case 8:
                var_34 = var_33(var_14);
                var_31 = (type_6)(type_4)(short)var_38(var_34);
              }
              var_34 = (double)(var_31 & 0xff) * (double)var_35;
            }
            else {
LAB_0028cba5:
              var_28[pPVar12[5].offset] = var_34;
              if (var_29 == 0) {
                if ((var_24 & 0x20002) != 0) goto LAB_0028cdd5;
LAB_0028cbc9:
                if (var_26 == 0) {
_L448:
                  var_34 = 0.0;
                }
                else {
                  switch(var_25) {
                  default:
                    goto _L448;
                  case 2:
                  case 3:
                    goto _L411;
                  case 4:
                  case 5:
                    var_31 = var_15(var_14);
                    break;
                  case 6:
                    var_22 = var_19(var_14);
                    var_31 = (type_6)var_38(var_22);
                    break;
                  case 8:
                    var_34 = var_33(var_14);
                    var_31 = (type_6)var_38(var_34);
                  }
LAB_0028c9a2:
                  var_34 = (double)(var_31 & 0xffff);
                }
              }
              else {
LAB_0028c951:
                switch(var_25) {
                case 0:
                case 1:
                  goto _L409;
                case 2:
                case 3:
_L411:
                  uVar3 = var_32(var_14);
                  var_31 = (type_6)uVar3;
                  goto LAB_0028c9a2;
                case 4:
                case 5:
                  var_31 = var_15(var_14);
                  var_34 = (double)var_31 / (double)var_36;
                  break;
                case 6:
_L391:
                  var_22 = var_19(var_14);
                  var_34 = (double)var_22 * (double)var_37;
                  break;
                default:
                  goto _L448;
                case 8:
_L392:
                  var_34 = var_33(var_14);
                  var_34 = var_34 * (double)var_37;
                }
              }
            }
            pPVar12 = var_14->channel_map;
LAB_0028c1d8:
            if (pPVar12[4].traits != var_40) {
              var_28[pPVar12[4].offset] = var_34;
            }
LAB_0028bc60:
            var_41 = var_41 + 1;
            var_28 = var_28 + var_14->number_channels;
          } while (var_41 < (int)var_14->columns);
        }
        var_9 = var_42(var_14,var_6);
        if (var_9 == var_4) goto LAB_0028c2d0;
        var_43 = var_43 + 1;
      } while (var_43 < (int)var_14->rows);
    }
    bVar2 = true;
LAB_0028c2d7:
    var_46 = (char *)0x0;
    while (var_45 = var_44(var_14,0xfff,buffer), var_45 != 0) {
      buffer[var_45] = '\0';
      if (var_46 == (char *)0x0) {
        var_46 = var_47(buffer);
      }
      else {
        var_48(&var_46,buffer);
      }
    }
    if (var_46 != (char *)0x0) {
      var_49(var_14,"vips:metadata",var_46,var_6);
      var_46 = (char *)var_50(var_46);
    }
    var_51(var_14);
    if (bVar2) goto LAB_0028b7fb;
  }
  else {
LAB_0028b983:
    tag = "Unsupported combination of band format and colorspace";
    line = 0x1f2;
LAB_0028b9a2:
    var_13
              (var_6,"coders/vips.c","ReadVIPSImage",line,CoderError,tag,"`%s\'",
               var_2->filename);
LAB_0028b7e8:
    var_51(var_14);
    var_10(var_14);
  }
LAB_0028b7f9:
  var_14 = (type_1 *)0x0;
LAB_0028b7fb:
  if (var_52 == *(int *)(var_1 + 0x14)) {
    return var_14;
  }
                    /* WARNING: Subroutine does not return */
  var_53();
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) 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: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (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 (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: (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 (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: (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 (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))) (goto_statement label: (statement_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: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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))))) (identifier) (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)))) (expression_statement (assignment_expression left: (identifier) right: (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: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal)) (case_statement value: (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))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (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))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (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))) (break_statement)) (case_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))) (case_statement value: (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))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (break_statement)) (case_statement value: (number_literal) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) right: (number_literal)))))))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier) (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))))) (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (false)))) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (break_statement)) (case_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (break_statement)) (case_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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (number_literal))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (labeled_statement label: (statement_identifier) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (break_statement)) (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal))))) (goto_statement label: (statement_identifier)))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier)))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (goto_statement label: (statement_identifier))) (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (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 (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))))))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier)))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (goto_statement label: (statement_identifier))) (case_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (break_statement)) (case_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (break_statement)) (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))))) alternative: (else_clause (compound_statement (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (break_statement)) (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (break_statement)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (break_statement)) (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (break_statement)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))))) alternative: (else_clause (compound_statement (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (break_statement)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (break_statement)) (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier))) (case_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal))))) (goto_statement label: (statement_identifier)))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (goto_statement label: (statement_identifier))) (case_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (break_statement)) (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (break_statement)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (break_statement)) (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (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: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (true))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (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) (string_literal (string_content)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content)) (identifier) (number_literal) (identifier) (string_literal (string_content) (escape_sequence)) (binary_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int MASKED(int param_1,int param_2)

{
  double dVar1;
  float fVar2;
  bool bVar3;
  byte bVar4;
  ushort uVar5;
  int iVar6;
  int iVar7;
  undefined4 uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  int iVar14;
  uint uVar15;
  int in_GS_OFFSET;
  longdouble lVar16;
  char *pcVar17;
  int local_106c;
  int iStack_1058;
  ushort uStack_103e;
  uint uStack_103c;
  int iStack_1024;
  undefined1 auStack_1020 [4096];
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x28b679;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info != (const ImageInfo *) NULL","coders/vips.c",0x187,"ReadVIPSImage");
  }
  if (*(int *)(param_1 + 0x31f4) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info->signature == MagickCoreSignature","coders/vips.c",0x188,
                  "ReadVIPSImage");
  }
  if (*(int *)(param_1 + 0x31f0) != 0) {
    LogMagickEvent(0x8000,"coders/vips.c","ReadVIPSImage",0x18a,&DAT_002b6e4e,param_1 + 0x21f0);
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception != (ExceptionInfo *) NULL","coders/vips.c",0x18c,"ReadVIPSImage");
  }
  if (*(int *)(param_2 + 0x1c) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception->signature == MagickCoreSignature","coders/vips.c",0x18d,
                  "ReadVIPSImage");
  }
  iVar6 = AcquireImage(param_1,param_2);
  iVar7 = OpenBlob(param_1,iVar6,2,param_2);
  if (iVar7 == 0) {
    DestroyImageList(iVar6);
    iVar6 = 0;
    goto LAB_0028b7fb;
  }
  iVar7 = ReadBlobLSBLong(iVar6);
  if (iVar7 != 0x8f2a6b6) {
    if (iVar7 == -0x49590df8) {
      *(undefined4 *)(iVar6 + 0x234) = 2;
      goto LAB_0028b739;
    }
    ThrowMagickException
              (param_2,"coders/vips.c","ReadVIPSImage",0x19c,0x1a9,"ImproperImageHeader","`%s\'",
               param_1 + 0x21f0);
    if (iVar6 != 0) goto LAB_0028b7e8;
    goto LAB_0028b7f9;
  }
  *(undefined4 *)(iVar6 + 0x234) = 1;
LAB_0028b739:
  uVar8 = ReadBlobLong(iVar6);
  *(undefined4 *)(iVar6 + 0x18) = uVar8;
  uVar8 = ReadBlobLong(iVar6);
  *(undefined4 *)(iVar6 + 0x1c) = uVar8;
  iVar7 = SetImageExtent(iVar6,*(undefined4 *)(iVar6 + 0x18),uVar8,param_2);
  if (iVar7 == 0) {
    iVar6 = DestroyImageList(iVar6);
    goto LAB_0028b7fb;
  }
  uVar9 = ReadBlobLong(iVar6);
  ReadBlobLong(iVar6);
  uVar10 = ReadBlobLong(iVar6);
  switch(uVar10) {
  case 0:
  case 1:
    *(undefined4 *)(iVar6 + 0x20) = 8;
    break;
  case 2:
  case 3:
    *(undefined4 *)(iVar6 + 0x20) = 0x10;
    break;
  case 4:
  case 5:
  case 6:
    *(undefined4 *)(iVar6 + 0x20) = 0x20;
    break;
  default:
    pcVar17 = "Unsupported band format";
    uVar8 = 0x1bb;
    goto LAB_0028b9a2;
  case 8:
    *(undefined4 *)(iVar6 + 0x20) = 0x40;
  }
  iVar7 = ReadBlobLong(iVar6);
  uVar11 = ReadBlobLong(iVar6);
  switch(uVar11) {
  default:
    pcVar17 = "Unsupported colorspace";
    uVar8 = 0x1e2;
    goto LAB_0028b9a2;
  case 1:
  case 0x1a:
    SetImageColorspace(iVar6,3,param_2);
    if (uVar9 == 2) {
code_r0x0028bb8c:
      *(undefined4 *)(iVar6 + 0x294) = 4;
    }
    break;
  case 0xf:
    SetImageColorspace(iVar6,2,param_2);
    if (uVar9 == 5) {
code_r0x0028bbbc:
      *(undefined4 *)(iVar6 + 0x294) = 4;
    }
    goto code_r0x0028b9e4;
  case 0x11:
  case 0x19:
    SetImageColorspace(iVar6,0x15,param_2);
    if (uVar9 == 4) goto code_r0x0028bb8c;
    break;
  case 0x16:
    SetImageColorspace(iVar6,0x17,param_2);
    if (uVar9 == 4) goto code_r0x0028bbbc;
code_r0x0028b9e4:
    SetImageBackgroundColor(iVar6,param_2);
    *(undefined4 *)(iVar6 + 0x1dc) = 2;
    lVar16 = (longdouble)ReadBlobFloat(iVar6);
    fVar2 = DAT_002aa50c;
    *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);
    lVar16 = (longdouble)ReadBlobFloat(iVar6);
    *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);
    ReadBlobLongLong(iVar6);
    ReadBlobLongLong(iVar6);
    ReadBlobLongLong(iVar6);
    if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;
    goto code_r0x0028ba52;
  }
  SetImageBackgroundColor(iVar6,param_2);
  *(undefined4 *)(iVar6 + 0x1dc) = 2;
  lVar16 = (longdouble)ReadBlobFloat(iVar6);
  fVar2 = DAT_002aa50c;
  *(double *)(iVar6 + 0x1f0) = (double)(lVar16 * (longdouble)DAT_002aa50c);
  lVar16 = (longdouble)ReadBlobFloat(iVar6);
  *(double *)(iVar6 + 0x1f8) = (double)((longdouble)fVar2 * lVar16);
  ReadBlobLongLong(iVar6);
  ReadBlobLongLong(iVar6);
  ReadBlobLongLong(iVar6);
  if (*(int *)(param_1 + 0x1bc) != 0) goto LAB_0028b7fb;
  if (uVar11 < 0x1b) {
code_r0x0028ba52:
    uVar11 = 1 << ((byte)uVar11 & 0x1f);
    if (((uVar11 & 0x428002) == 0) &&
       ((((uVar11 & 0x6000000) == 0 || (8 < uVar10)) || ((1 << ((byte)uVar10 & 0x1f) & 0x17cU) == 0)
        ))) goto code_r0x0028b983;
    if (4 < uVar9 - 1) {
      pcVar17 = "Unsupported number of channels";
      uVar8 = 500;
      goto LAB_0028b9a2;
    }
    if (iVar7 != 0) {
      pcVar17 = "Unsupported coding";
      uVar8 = 0x1f8;
      goto LAB_0028b9a2;
    }
    if (0 < *(int *)(iVar6 + 0x1c)) {
      iStack_1058 = 0;
      do {
        iVar7 = GetAuthenticPixels(iVar6,0,iStack_1058,*(undefined4 *)(iVar6 + 0x18),1,param_2);
        if (iVar7 == 0) {
code_r0x0028c2d0:
          bVar3 = false;
          goto code_r0x0028c2d7;
        }
        if (0 < *(int *)(iVar6 + 0x18)) {
          uVar12 = uVar11 & 0x6000000;
          uVar15 = uVar11 & 0x408000;
          local_106c = 0;
          do {
            if (uVar15 != 0) {
              switch(uVar10) {
              case 0:
              case 1:
                bVar4 = ReadBlobByte(iVar6);
                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;
                break;
              case 2:
              case 3:
                uVar5 = ReadBlobShort(iVar6);
                lVar16 = (longdouble)uVar5;
                break;
              case 4:
              case 5:
                uVar13 = ReadBlobLong(iVar6);
                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;
                break;
              case 6:
                lVar16 = (longdouble)ReadBlobFloat(iVar6);
                lVar16 = lVar16 * (longdouble)DAT_0029f710;
                break;
              default:
                iVar14 = *(int *)(iVar6 + 0x2a8);
                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 8) * 8) = 0;
                if (2 < uVar9) goto code_r0x0028bd09;
                lVar16 = (longdouble)0;
                goto code_r0x0028bc37;
              case 8:
                lVar16 = (longdouble)ReadBlobDouble(iVar6);
                lVar16 = lVar16 * (longdouble)DAT_0029f710;
              }
              iVar14 = *(int *)(iVar6 + 0x2a8);
              *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;
              if (uVar9 < 3) goto code_r0x0028bc37;
code_r0x0028bd09:
              switch(uVar10) {
              case 0:
              case 1:
                bVar4 = ReadBlobByte(iVar6);
                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;
                break;
              case 2:
              case 3:
                uVar5 = ReadBlobShort(iVar6);
                lVar16 = (longdouble)uVar5;
                break;
              case 4:
              case 5:
                uVar13 = ReadBlobLong(iVar6);
                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;
                break;
              case 6:
                lVar16 = (longdouble)ReadBlobFloat(iVar6);
                lVar16 = lVar16 * (longdouble)DAT_0029f710;
                break;
              default:
                *(undefined8 *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = 0;
                goto code_r0x0028be31;
              case 8:
                lVar16 = (longdouble)ReadBlobDouble(iVar6);
                lVar16 = lVar16 * (longdouble)DAT_0029f710;
              }
              *(double *)(iVar7 + *(int *)(*(int *)(iVar6 + 0x2a8) + 0x14) * 8) = (double)lVar16;
code_r0x0028be31:
              switch(uVar10) {
              case 0:
              case 1:
                goto code_r0x0028be50;
              case 2:
              case 3:
                goto code_r0x0028bed8;
              case 4:
              case 5:
                uVar13 = ReadBlobLong(iVar6);
                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;
                break;
              case 6:
                lVar16 = (longdouble)ReadBlobFloat(iVar6);
                lVar16 = lVar16 * (longdouble)DAT_0029f710;
                break;
              default:
                goto code_r0x0028c020;
              case 8:
                lVar16 = (longdouble)ReadBlobDouble(iVar6);
                lVar16 = lVar16 * (longdouble)DAT_0029f710;
              }
              goto code_r0x0028be75;
            }
            if ((uVar11 & 0x20002) == 0) {
              if (uVar12 == 0) {
code_r0x0028bc20:
                lVar16 = (longdouble)0;
                goto code_r0x0028bc22;
              }
              switch(uVar10) {
              default:
                goto code_r0x0028bc20;
              case 2:
              case 3:
                uStack_103c = ReadBlobShort(iVar6);
                break;
              case 4:
              case 5:
                uStack_103c = ReadBlobLong(iVar6);
                break;
              case 6:
                lVar16 = (longdouble)ReadBlobFloat(iVar6);
                goto code_r0x0028c3ba;
              case 8:
                lVar16 = (longdouble)ReadBlobDouble(iVar6);
code_r0x0028c3ba:
                uStack_103c = (uint)ROUND(lVar16);
              }
              lVar16 = (longdouble)(uStack_103c & 0xffff);
              goto code_r0x0028bc22;
            }
            switch(uVar10) {
            case 0:
            case 1:
              uStack_103e = ReadBlobByte(iVar6);
              break;
            case 2:
            case 3:
              uStack_103e = ReadBlobShort(iVar6);
              break;
            case 4:
            case 5:
              uStack_103e = ReadBlobLong(iVar6);
              break;
            case 6:
              lVar16 = (longdouble)ReadBlobFloat(iVar6);
              goto code_r0x0028c07a;
            default:
              goto code_r0x0028bc20;
            case 8:
              lVar16 = (longdouble)ReadBlobDouble(iVar6);
code_r0x0028c07a:
              uStack_103e = (ushort)ROUND(lVar16);
            }
            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;
code_r0x0028bc22:
            iVar14 = *(int *)(iVar6 + 0x2a8);
            *(double *)(iVar7 + *(int *)(iVar14 + 8) * 8) = (double)lVar16;
            if (uVar9 < 3) {
code_r0x0028bc37:
              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)lVar16;
              *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;
              if (uVar9 == 2) {
                if (uVar15 != 0) {
                  switch(uVar10) {
                  case 0:
                  case 1:
                    goto code_r0x0028c600;
                  case 2:
                  case 3:
                    goto code_r0x0028c630;
                  case 4:
                  case 5:
                    goto code_r0x0028c6a4;
                  case 6:
                    goto code_r0x0028c67f;
                  default:
                    goto code_r0x0028c1d2;
                  case 8:
                    goto code_r0x0028c65a;
                  }
                }
                if ((uVar11 & 0x20002) != 0) {
                  switch(uVar10) {
                  case 0:
                  case 1:
                    goto code_r0x0028c600;
                  case 2:
                  case 3:
                    goto code_r0x0028c7e6;
                  case 4:
                  case 5:
                    goto code_r0x0028c82c;
                  case 6:
                    goto code_r0x0028c7f8;
                  default:
                    goto code_r0x0028c1d2;
                  case 8:
                    goto code_r0x0028c83e;
                  }
                }
                if (uVar12 != 0) {
                  switch(uVar10) {
                  default:
                    break;
                  case 2:
                  case 3:
                    goto code_r0x0028c630;
                  case 4:
                  case 5:
                    goto code_r0x0028ca3d;
                  case 6:
                    goto code_r0x0028ca4f;
                  case 8:
                    goto code_r0x0028ca82;
                  }
                }
                goto code_r0x0028c1d2;
              }
              goto code_r0x0028bc60;
            }
            if ((uVar11 & 0x20002) == 0) {
              if (uVar12 == 0) {
code_r0x0028c180:
                dVar1 = 0.0;
                goto code_r0x0028c182;
              }
              switch(uVar10) {
              default:
                goto code_r0x0028c180;
              case 2:
              case 3:
                uStack_103c = ReadBlobShort(iVar6);
                break;
              case 4:
              case 5:
                uStack_103c = ReadBlobLong(iVar6);
                break;
              case 6:
                lVar16 = (longdouble)ReadBlobFloat(iVar6);
                goto code_r0x0028c774;
              case 8:
                lVar16 = (longdouble)ReadBlobDouble(iVar6);
code_r0x0028c774:
                uStack_103c = (uint)ROUND(lVar16);
              }
              dVar1 = (double)(uStack_103c & 0xffff);
              iVar14 = *(int *)(iVar6 + 0x2a8);
code_r0x0028c182:
              *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = dVar1;
              if (uVar12 == 0) goto code_r0x0028c020;
              switch(uVar10) {
              default:
                goto code_r0x0028c020;
              case 2:
              case 3:
code_r0x0028bed8:
                uStack_103c = ReadBlobShort(iVar6);
                break;
              case 4:
              case 5:
                uStack_103c = ReadBlobLong(iVar6);
                break;
              case 6:
                lVar16 = (longdouble)ReadBlobFloat(iVar6);
                goto code_r0x0028c703;
              case 8:
                lVar16 = (longdouble)ReadBlobDouble(iVar6);
code_r0x0028c703:
                uStack_103c = (uint)ROUND(lVar16);
              }
              lVar16 = (longdouble)(uStack_103c & 0xffff);
              goto code_r0x0028be75;
            }
            switch(uVar10) {
            case 0:
            case 1:
              uStack_103e = ReadBlobByte(iVar6);
              break;
            case 2:
            case 3:
              uStack_103e = ReadBlobShort(iVar6);
              break;
            case 4:
            case 5:
              uStack_103e = ReadBlobLong(iVar6);
              break;
            case 6:
              lVar16 = (longdouble)ReadBlobFloat(iVar6);
              goto code_r0x0028c4c8;
            default:
              fVar2 = 0.0;
              goto code_r0x0028c4eb;
            case 8:
              lVar16 = (longdouble)ReadBlobDouble(iVar6);
code_r0x0028c4c8:
              uStack_103e = (ushort)ROUND(lVar16);
            }
            fVar2 = (float)(uStack_103e & 0xff) * DAT_002a7ff0;
            iVar14 = *(int *)(iVar6 + 0x2a8);
code_r0x0028c4eb:
            *(double *)(iVar7 + *(int *)(iVar14 + 0x14) * 8) = (double)fVar2;
            switch(uVar10) {
            case 0:
            case 1:
code_r0x0028be50:
              uVar5 = ReadBlobByte(iVar6);
              break;
            case 2:
            case 3:
              uVar5 = ReadBlobShort(iVar6);
              break;
            case 4:
            case 5:
              uVar5 = ReadBlobLong(iVar6);
              break;
            case 6:
              lVar16 = (longdouble)ReadBlobFloat(iVar6);
              uVar5 = (ushort)ROUND(lVar16);
              break;
            default:
code_r0x0028c020:
              lVar16 = (longdouble)0;
              goto code_r0x0028be75;
            case 8:
              lVar16 = (longdouble)ReadBlobDouble(iVar6);
              uVar5 = (ushort)ROUND(lVar16);
            }
            lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;
code_r0x0028be75:
            iVar14 = *(int *)(iVar6 + 0x2a8);
            *(double *)(iVar7 + *(int *)(iVar14 + 0x20) * 8) = (double)lVar16;
            if (uVar9 == 4) {
              if (*(int *)(iVar6 + 4) == 2) {
                if (uVar15 == 0) {
                  if ((uVar11 & 0x20002) != 0) {
                    switch(uVar10) {
                    case 0:
                    case 1:
                      goto code_r0x0028caae;
                    case 2:
                    case 3:
                      uVar5 = ReadBlobShort(iVar6);
                      break;
                    case 4:
                    case 5:
                      uVar5 = ReadBlobLong(iVar6);
                      break;
                    case 6:
                      lVar16 = (longdouble)ReadBlobFloat(iVar6);
                      uVar5 = (ushort)ROUND(lVar16);
                      break;
                    default:
                      goto code_r0x0028cbef;
                    case 8:
                      lVar16 = (longdouble)ReadBlobDouble(iVar6);
                      uVar5 = (ushort)ROUND(lVar16);
                    }
code_r0x0028cabb:
                    lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;
                    iVar14 = *(int *)(iVar6 + 0x2a8);
                    goto code_r0x0028cad9;
                  }
                  if (uVar12 != 0) {
                    switch(uVar10) {
                    default:
                      goto code_r0x0028cbef;
                    case 2:
                    case 3:
                      goto code_r0x0028caef;
                    case 4:
                    case 5:
                      uStack_103c = ReadBlobLong(iVar6);
                      goto code_r0x0028cafc;
                    case 6:
                      lVar16 = (longdouble)ReadBlobFloat(iVar6);
                      break;
                    case 8:
                      lVar16 = (longdouble)ReadBlobDouble(iVar6);
                    }
                    uStack_103c = (uint)ROUND(lVar16);
                    goto code_r0x0028cafc;
                  }
code_r0x0028cbef:
                  lVar16 = (longdouble)0;
                }
                else {
                  switch(uVar10) {
                  case 0:
                  case 1:
code_r0x0028caae:
                    uVar5 = ReadBlobByte(iVar6);
                    goto code_r0x0028cabb;
                  case 2:
                  case 3:
code_r0x0028caef:
                    uStack_103c = ReadBlobShort(iVar6);
code_r0x0028cafc:
                    lVar16 = (longdouble)(uStack_103c & 0xffff);
                    iVar14 = *(int *)(iVar6 + 0x2a8);
                    break;
                  case 4:
                  case 5:
                    uVar13 = ReadBlobLong(iVar6);
                    lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;
                    iVar14 = *(int *)(iVar6 + 0x2a8);
                    break;
                  case 6:
                    lVar16 = (longdouble)ReadBlobFloat(iVar6);
                    iVar14 = *(int *)(iVar6 + 0x2a8);
                    lVar16 = lVar16 * (longdouble)DAT_0029f710;
                    break;
                  default:
                    goto code_r0x0028cbef;
                  case 8:
                    lVar16 = (longdouble)ReadBlobDouble(iVar6);
                    iVar14 = *(int *)(iVar6 + 0x2a8);
                    lVar16 = lVar16 * (longdouble)DAT_0029f710;
                  }
                }
code_r0x0028cad9:
                if (*(int *)(iVar14 + 0x40) != 0) {
                  *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;
                }
                goto code_r0x0028bc60;
              }
              if (uVar15 == 0) {
                if ((uVar11 & 0x20002) != 0) {
                  switch(uVar10) {
                  case 0:
                  case 1:
                    goto code_r0x0028c600;
                  case 2:
                  case 3:
code_r0x0028c7e6:
                    uVar5 = ReadBlobShort(iVar6);
                    break;
                  case 4:
                  case 5:
code_r0x0028c82c:
                    uVar5 = ReadBlobLong(iVar6);
                    break;
                  case 6:
code_r0x0028c7f8:
                    lVar16 = (longdouble)ReadBlobFloat(iVar6);
                    uVar5 = (ushort)ROUND(lVar16);
                    break;
                  default:
                    goto code_r0x0028c1d2;
                  case 8:
code_r0x0028c83e:
                    lVar16 = (longdouble)ReadBlobDouble(iVar6);
                    uVar5 = (ushort)ROUND(lVar16);
                  }
code_r0x0028c60d:
                  lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;
                  iVar14 = *(int *)(iVar6 + 0x2a8);
                  goto code_r0x0028c1d8;
                }
                if (uVar12 != 0) {
                  switch(uVar10) {
                  default:
                    goto code_r0x0028c1d2;
                  case 2:
                  case 3:
                    goto code_r0x0028c630;
                  case 4:
                  case 5:
code_r0x0028ca3d:
                    uStack_103c = ReadBlobLong(iVar6);
                    goto code_r0x0028c63d;
                  case 6:
code_r0x0028ca4f:
                    lVar16 = (longdouble)ReadBlobFloat(iVar6);
                    break;
                  case 8:
code_r0x0028ca82:
                    lVar16 = (longdouble)ReadBlobDouble(iVar6);
                  }
                  uStack_103c = (uint)ROUND(lVar16);
                  goto code_r0x0028c63d;
                }
code_r0x0028c1d2:
                lVar16 = (longdouble)0;
              }
              else {
                switch(uVar10) {
                case 0:
                case 1:
code_r0x0028c600:
                  uVar5 = ReadBlobByte(iVar6);
                  goto code_r0x0028c60d;
                case 2:
                case 3:
code_r0x0028c630:
                  uStack_103c = ReadBlobShort(iVar6);
code_r0x0028c63d:
                  lVar16 = (longdouble)(uStack_103c & 0xffff);
                  iVar14 = *(int *)(iVar6 + 0x2a8);
                  break;
                case 4:
                case 5:
code_r0x0028c6a4:
                  uVar13 = ReadBlobLong(iVar6);
                  lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;
                  iVar14 = *(int *)(iVar6 + 0x2a8);
                  break;
                case 6:
code_r0x0028c67f:
                  lVar16 = (longdouble)ReadBlobFloat(iVar6);
                  iVar14 = *(int *)(iVar6 + 0x2a8);
                  lVar16 = lVar16 * (longdouble)DAT_0029f710;
                  break;
                default:
                  goto code_r0x0028c1d2;
                case 8:
code_r0x0028c65a:
                  lVar16 = (longdouble)ReadBlobDouble(iVar6);
                  iVar14 = *(int *)(iVar6 + 0x2a8);
                  lVar16 = lVar16 * (longdouble)DAT_0029f710;
                }
              }
              goto code_r0x0028c1d8;
            }
            if (uVar9 != 5) goto code_r0x0028bc60;
            if (uVar15 != 0) {
              switch(uVar10) {
              case 0:
              case 1:
                bVar4 = ReadBlobByte(iVar6);
                lVar16 = (longdouble)bVar4 * (longdouble)DAT_002a7ff0;
                break;
              case 2:
              case 3:
                uVar5 = ReadBlobShort(iVar6);
                lVar16 = (longdouble)uVar5;
                break;
              case 4:
              case 5:
                uVar13 = ReadBlobLong(iVar6);
                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;
                break;
              case 6:
                lVar16 = (longdouble)ReadBlobFloat(iVar6);
                iVar14 = *(int *)(iVar6 + 0x2a8);
                lVar16 = lVar16 * (longdouble)DAT_0029f710;
                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;
                goto code_r0x0028c8f8;
              default:
                if (*(int *)(iVar14 + 0x40) != 0) {
                  lVar16 = (longdouble)0;
                  goto code_r0x0028cba5;
                }
                goto code_r0x0028c951;
              case 8:
                lVar16 = (longdouble)ReadBlobDouble(iVar6);
                iVar14 = *(int *)(iVar6 + 0x2a8);
                lVar16 = lVar16 * (longdouble)DAT_0029f710;
                if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;
                goto code_r0x0028c89f;
              }
              iVar14 = *(int *)(iVar6 + 0x2a8);
              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;
              goto code_r0x0028c951;
            }
            if ((uVar11 & 0x20002) == 0) {
              if (uVar12 == 0) {
code_r0x0028cd74:
                lVar16 = (longdouble)0;
                goto code_r0x0028cc3c;
              }
              switch(uVar10) {
              default:
                goto code_r0x0028cd74;
              case 2:
              case 3:
                uStack_103c = ReadBlobShort(iVar6);
                break;
              case 4:
              case 5:
                uStack_103c = ReadBlobLong(iVar6);
                break;
              case 6:
                lVar16 = (longdouble)ReadBlobFloat(iVar6);
                goto code_r0x0028cc20;
              case 8:
                lVar16 = (longdouble)ReadBlobDouble(iVar6);
code_r0x0028cc20:
                uStack_103c = (uint)ROUND(lVar16);
              }
              lVar16 = (longdouble)(uStack_103c & 0xffff);
              iVar14 = *(int *)(iVar6 + 0x2a8);
code_r0x0028cc3c:
              if (*(int *)(iVar14 + 0x40) != 0) goto code_r0x0028cba5;
              goto code_r0x0028cbc9;
            }
            switch(uVar10) {
            case 0:
            case 1:
              uStack_103e = ReadBlobByte(iVar6);
              break;
            case 2:
            case 3:
              uStack_103e = ReadBlobShort(iVar6);
              break;
            case 4:
            case 5:
              uStack_103e = ReadBlobLong(iVar6);
              break;
            case 6:
              lVar16 = (longdouble)ReadBlobFloat(iVar6);
              goto code_r0x0028cda5;
            default:
              lVar16 = (longdouble)0;
              goto code_r0x0028cdc8;
            case 8:
              lVar16 = (longdouble)ReadBlobDouble(iVar6);
code_r0x0028cda5:
              uStack_103e = (ushort)ROUND(lVar16);
            }
            lVar16 = (longdouble)(uStack_103e & 0xff) * (longdouble)DAT_002a7ff0;
            iVar14 = *(int *)(iVar6 + 0x2a8);
code_r0x0028cdc8:
            if (*(int *)(iVar14 + 0x40) == 0) {
code_r0x0028cdd5:
              switch(uVar10) {
              case 0:
              case 1:
code_r0x0028c96b:
                uVar5 = ReadBlobByte(iVar6);
                break;
              case 2:
              case 3:
                uVar5 = ReadBlobShort(iVar6);
                break;
              case 4:
              case 5:
                uVar5 = ReadBlobLong(iVar6);
                break;
              case 6:
                lVar16 = (longdouble)ReadBlobFloat(iVar6);
                uVar5 = (ushort)ROUND(lVar16);
                break;
              default:
                goto code_r0x0028ca36;
              case 8:
                lVar16 = (longdouble)ReadBlobDouble(iVar6);
                uVar5 = (ushort)ROUND(lVar16);
              }
              lVar16 = (longdouble)(uVar5 & 0xff) * (longdouble)DAT_002a7ff0;
              goto code_r0x0028c8c0;
            }
code_r0x0028cba5:
            *(double *)(iVar7 + *(int *)(iVar14 + 0x44) * 8) = (double)lVar16;
            if (uVar15 == 0) {
              if ((uVar11 & 0x20002) != 0) goto code_r0x0028cdd5;
code_r0x0028cbc9:
              if (uVar12 != 0) {
                switch(uVar10) {
                default:
                  goto code_r0x0028ca36;
                case 2:
                case 3:
                  goto code_r0x0028c995;
                case 4:
                case 5:
                  uStack_103c = ReadBlobLong(iVar6);
                  goto code_r0x0028c9a2;
                case 6:
                  lVar16 = (longdouble)ReadBlobFloat(iVar6);
                  break;
                case 8:
                  lVar16 = (longdouble)ReadBlobDouble(iVar6);
                }
                uStack_103c = (uint)ROUND(lVar16);
                goto code_r0x0028c9a2;
              }
code_r0x0028ca36:
              lVar16 = (longdouble)0;
            }
            else {
code_r0x0028c951:
              switch(uVar10) {
              case 0:
              case 1:
                goto code_r0x0028c96b;
              case 2:
              case 3:
code_r0x0028c995:
                uStack_103c = ReadBlobShort(iVar6);
code_r0x0028c9a2:
                lVar16 = (longdouble)(uStack_103c & 0xffff);
                break;
              case 4:
              case 5:
                uVar13 = ReadBlobLong(iVar6);
                lVar16 = (longdouble)uVar13 / (longdouble)DAT_002a7fec;
                break;
              case 6:
code_r0x0028c8f8:
                lVar16 = (longdouble)ReadBlobFloat(iVar6);
                lVar16 = lVar16 * (longdouble)DAT_0029f710;
                break;
              default:
                goto code_r0x0028ca36;
              case 8:
code_r0x0028c89f:
                lVar16 = (longdouble)ReadBlobDouble(iVar6);
                lVar16 = lVar16 * (longdouble)DAT_0029f710;
              }
            }
code_r0x0028c8c0:
            iVar14 = *(int *)(iVar6 + 0x2a8);
code_r0x0028c1d8:
            if (*(int *)(iVar14 + 0x34) != 0) {
              *(double *)(iVar7 + *(int *)(iVar14 + 0x38) * 8) = (double)lVar16;
            }
code_r0x0028bc60:
            local_106c = local_106c + 1;
            iVar7 = iVar7 + *(int *)(iVar6 + 0x298) * 8;
          } while (local_106c < *(int *)(iVar6 + 0x18));
        }
        iVar7 = SyncAuthenticPixels(iVar6,param_2);
        if (iVar7 == 0) goto code_r0x0028c2d0;
        iStack_1058 = iStack_1058 + 1;
      } while (iStack_1058 < *(int *)(iVar6 + 0x1c));
    }
    bVar3 = true;
code_r0x0028c2d7:
    iStack_1024 = 0;
    while (iVar7 = ReadBlob(iVar6,0xfff,auStack_1020), iVar7 != 0) {
      auStack_1020[iVar7] = 0;
      if (iStack_1024 == 0) {
        iStack_1024 = ConstantString(auStack_1020);
      }
      else {
        ConcatenateString(&iStack_1024,auStack_1020);
      }
    }
    if (iStack_1024 != 0) {
      SetImageProperty(iVar6,"vips:metadata",iStack_1024,param_2);
      iStack_1024 = RelinquishMagickMemory(iStack_1024);
    }
    CloseBlob(iVar6);
    if (bVar3) goto LAB_0028b7fb;
  }
  else {
code_r0x0028b983:
    pcVar17 = "Unsupported combination of band format and colorspace";
    uVar8 = 0x1f2;
LAB_0028b9a2:
    ThrowMagickException
              (param_2,"coders/vips.c","ReadVIPSImage",uVar8,0x1c2,pcVar17,"`%s\'",param_1 + 0x21f0)
    ;
LAB_0028b7e8:
    CloseBlob(iVar6);
    DestroyImageList(iVar6);
  }
LAB_0028b7f9:
  iVar6 = 0;
LAB_0028b7fb:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return iVar6;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0029eab0();
}

