
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

MagickBooleanType WritePICTImage(ImageInfo *image_info,Image *image,ExceptionInfo *exception)

{
  uint uVar1;
  double *pdVar2;
  double dVar3;
  double dVar4;
  double dVar5;
  _Image *p_Var6;
  size_t sVar7;
  PixelTrait PVar8;
  PixelChannelMap *pPVar9;
  ushort value;
  ushort value_00;
  ushort uVar10;
  MagickBooleanType MVar11;
  ExceptionInfo *memory;
  Image *pIVar12;
  undefined1 *memory_00;
  StringInfo *pSVar13;
  size_t sVar14;
  ExceptionInfo *pEVar15;
  Quantum *pQVar16;
  Image *pIVar17;
  ImageInfo *image_info_00;
  ExceptionInfo *data;
  int iVar18;
  uchar *extraout_ECX;
  undefined1 *puVar19;
  ExceptionInfo *extraout_ECX_00;
  ClassType CVar20;
  undefined1 *puVar21;
  size_t sVar22;
  undefined1 uVar23;
  int iVar24;
  int in_GS_OFFSET;
  bool bVar25;
  byte bVar26;
  MagickOffsetType MVar27;
  undefined1 uVar28;
  undefined1 uVar29;
  undefined1 uVar30;
  undefined2 uVar31;
  undefined2 uVar32;
  ExceptionInfo *pixels;
  uchar *pixels_00;
  undefined1 *local_a4;
  size_t local_a0;
  undefined1 *local_9c;
  int local_98;
  size_t local_94;
  undefined1 *local_90;
  undefined1 *local_8c;
  ushort local_88;
  ushort local_84;
  uint local_5c;
  int local_58;
  size_t length;
  int local_20;
  undefined4 uStack_14;
  
  bVar26 = 0;
  uStack_14 = 0x278539;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (image_info == (ImageInfo *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");
  }
  if (image_info->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,
                  "WritePICTImage");
  }
  if (image == (Image *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");
  }
  if (image->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");
  }
  if (image->debug != MagickFalse) {
    LogMagickEvent(TraceEvent,"coders/pict.c","WritePICTImage",0x6ba,"%s",(char)image + '\x18');
  }
  if ((image->columns < 0x10000) && (image->rows < 0x10000)) {
    if (exception == (ExceptionInfo *)0x0) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");
    }
    if (exception->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,
                    "WritePICTImage");
    }
    pixels = exception;
    MVar11 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
    if (MVar11 == MagickFalse) goto LAB_0027872e;
    TransformImageColorspace(image,sRGBColorspace,exception);
    sVar14 = image->columns;
    dVar3 = (image->resolution).x;
    if ((dVar3 <= DAT_002df2d0) || (dVar4 = (image->resolution).y, dVar4 <= DAT_002df2d0)) {
      dVar4 = 0.0;
      dVar3 = 0.0;
    }
    else if (image->units == PixelsPerCentimeterResolution) {
      dVar3 = dVar3 * _DAT_002f84b0;
      dVar4 = _DAT_002f84b0 * dVar4;
    }
    CVar20 = image->storage_class;
    if ((image_info->compression == JPEGCompression) || (CVar20 == DirectClass)) {
      local_94 = sVar14 << 2;
      if (image->alpha_trait == UndefinedPixelTrait) {
        local_9c._0_2_ = 3;
        local_a0 = sVar14 * 3;
      }
      else {
        local_9c._0_2_ = 4;
        local_a0 = local_94;
      }
      local_90._0_2_ = 0x40;
      CVar20 = DirectClass;
      local_8c._0_2_ = 0x20;
      local_88 = 0x10;
      local_84 = 4;
    }
    else {
      local_90._0_2_ = 0;
      local_8c._0_2_ = 8;
      local_88 = 0;
      local_84 = 0;
      local_9c._0_2_ = 1;
      local_a0 = sVar14;
      local_94 = sVar14;
    }
    if ((0x7ffe < local_a0 - 1) || (uVar1 = local_94 + 0x100, 0x7ffe < uVar1)) {
      ThrowMagickException
                (exception,"coders/pict.c","WritePICTImage",0x700,ImageError,
                 "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename);
      p_Var6 = (_Image *)image_info->adjoin;
      pIVar12 = image;
      while (pIVar17 = pIVar12, p_Var6 != (_Image *)0x0) {
        p_Var6 = pIVar17->previous;
        pIVar12 = p_Var6;
        image = pIVar17;
      }
      goto LAB_00278720;
    }
    sVar7 = image->rows;
    memory = (ExceptionInfo *)AcquireQuantumMemory(0x200,1);
    pIVar12 = (Image *)AcquireQuantumMemory(uVar1,1);
    memory_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);
    if ((memory == (ExceptionInfo *)0x0) || (pIVar12 == (Image *)0x0)) {
      if (memory_00 != (undefined1 *)0x0) {
        RelinquishMagickMemory(memory_00);
      }
      if (pIVar12 != (Image *)0x0) goto LAB_0027924d;
    }
    else {
      if (memory_00 != (undefined1 *)0x0) {
        memset(memory_00,0,local_94);
        memset(pIVar12,0,uVar1);
        pEVar15 = memory;
        for (iVar18 = 0x80; iVar18 != 0; iVar18 = iVar18 + -1) {
          pEVar15->severity = UndefinedException;
          pEVar15 = (ExceptionInfo *)((int)pEVar15 + (uint)bVar26 * -8 + 4);
        }
        pEVar15 = memory;
        WriteBlob(image,0x200,memory);
        WriteBlobMSBShort(image,0);
        WriteBlobMSBShort(image,0);
        WriteBlobMSBShort(image,0);
        value_00 = (ushort)sVar7;
        WriteBlobMSBShort(image,value_00);
        value = (ushort)sVar14;
        WriteBlobMSBShort(image,value);
        WriteBlobMSBShort(image,0x11);
        WriteBlobMSBShort(image,0x2ff);
        WriteBlobMSBShort(image,0xc00);
        WriteBlobMSBLong(image,0xfffe0000);
        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));
        WriteBlobMSBShort(image,0);
        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));
        WriteBlobMSBShort(image,0);
        WriteBlobMSBShort(image,0);
        WriteBlobMSBShort(image,0);
        WriteBlobMSBShort(image,value_00);
        WriteBlobMSBShort(image,value);
        WriteBlobMSBLong(image,0);
        pSVar13 = GetImageProfile(image,"iptc");
        if (pSVar13 != (StringInfo *)0x0) {
          WriteBlobMSBShort(image,0xa1);
          WriteBlobMSBShort(image,0x1f2);
          sVar14 = GetStringInfoLength(pSVar13);
          WriteBlobMSBShort(image,(short)sVar14 + 4);
          WriteBlobString(image,"8BIM");
          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);
          sVar14 = GetStringInfoLength(pSVar13);
          WriteBlob(image,sVar14,pEVar15);
        }
        pSVar13 = GetImageProfile(image,"icc");
        if (pSVar13 != (StringInfo *)0x0) {
          WriteBlobMSBShort(image,0xa1);
          WriteBlobMSBShort(image,0xe0);
          sVar14 = GetStringInfoLength(pSVar13);
          WriteBlobMSBShort(image,(short)sVar14 + 4);
          WriteBlobMSBLong(image,0);
          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);
          sVar14 = GetStringInfoLength(pSVar13);
          WriteBlob(image,sVar14,pEVar15);
          WriteBlobMSBShort(image,0xa1);
          WriteBlobMSBShort(image,0xe0);
          WriteBlobMSBShort(image,4);
          WriteBlobMSBLong(image,2);
        }
        WriteBlobMSBShort(image,1);
        WriteBlobMSBShort(image,10);
        WriteBlobMSBShort(image,0);
        WriteBlobMSBShort(image,0);
        WriteBlobMSBShort(image,value_00);
        WriteBlobMSBShort(image,value);
        if (image_info->compression == JPEGCompression) {
          pIVar17 = CloneImage(image,0,0,MagickTrue,exception);
          if (pIVar17 == (Image *)0x0) {
            CloseBlob(image);
          }
          else {
            image_info_00 = CloneImageInfo(image_info);
            CopyMagickString(image_info_00->magick,"JPEG",0x1000);
            length = 0;
            pixels = exception;
            data = (ExceptionInfo *)ImageToBlob(image_info_00,pIVar17,&length,exception);
            DestroyImageInfo(image_info_00);
            if (data != (ExceptionInfo *)0x0) {
              DestroyImage(pIVar17);
              WriteBlobMSBShort(image,0x8200);
              WriteBlobMSBLong(image,length + 0x9a);
              WriteBlobMSBShort(image,0);
              WriteBlobMSBLong(image,0x10000);
              WriteBlobMSBLong(image,0);
              WriteBlobMSBLong(image,0);
              WriteBlobMSBLong(image,0);
              WriteBlobMSBLong(image,0x10000);
              WriteBlobMSBLong(image,0);
              WriteBlobMSBLong(image,0);
              WriteBlobMSBLong(image,0);
              WriteBlobMSBLong(image,0x40000000);
              WriteBlobMSBLong(image,0);
              WriteBlobMSBLong(image,0);
              WriteBlobMSBLong(image,0);
              WriteBlobMSBLong(image,0x400000);
              WriteBlobMSBShort(image,0);
              WriteBlobMSBShort(image,(ushort)image->rows);
              WriteBlobMSBShort(image,(ushort)image->columns);
              WriteBlobMSBShort(image,0);
              WriteBlobMSBShort(image,0x300);
              WriteBlobMSBShort(image,0);
              WriteBlobMSBLong(image,0);
              WriteBlobMSBLong(image,0x566a70);
              WriteBlobMSBLong(image,0x65670000);
              WriteBlobMSBLong(image,0);
              WriteBlobMSBLong(image,1);
              WriteBlobMSBLong(image,0x16170);
              WriteBlobMSBLong(image,0x706c0000);
              WriteBlobMSBLong(image,0);
              WriteBlobMSBShort(image,0x300);
              WriteBlobMSBShort(image,(ushort)image->columns);
              WriteBlobMSBShort(image,(ushort)image->rows);
              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));
              WriteBlobMSBShort(image,0);
              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));
              WriteBlobMSBShort(image,0);
              WriteBlobMSBLong(image,length);
              WriteBlobMSBShort(image,1);
              WriteBlobMSBLong(image,0xb466f74);
              WriteBlobMSBLong(image,0x6f202d20);
              WriteBlobMSBLong(image,0x4a504547);
              WriteBlobMSBLong(image,0);
              WriteBlobMSBLong(image,0);
              WriteBlobMSBLong(image,0);
              WriteBlobMSBLong(image,0);
              WriteBlobMSBLong(image,0);
              WriteBlobMSBLong(image,0x18ffff);
              pEVar15 = data;
              WriteBlob(image,length,data);
              if ((length & 1) != 0) {
                pEVar15 = extraout_ECX_00;
                pixels = extraout_ECX_00;
                WriteBlobByte(image,'\0');
              }
              RelinquishMagickMemory(data);
              goto LAB_00278cac;
            }
          }
          MVar11 = MagickFalse;
          goto LAB_0027872e;
        }
LAB_00278cac:
        if (CVar20 == PseudoClass) {
          WriteBlobMSBShort(image,0x98);
        }
        else {
          WriteBlobMSBShort(image,0x9a);
          WriteBlobMSBLong(image,0xff);
        }
        WriteBlobMSBShort(image,(ushort)local_94 | 0x8000);
        WriteBlobMSBShort(image,0);
        WriteBlobMSBShort(image,0);
        WriteBlobMSBShort(image,value_00);
        WriteBlobMSBShort(image,value);
        WriteBlobMSBShort(image,0);
        WriteBlobMSBShort(image,local_84);
        WriteBlobMSBLong(image,0);
        dVar5 = (double)DAT_002df2b8;
        WriteBlobMSBShort(image,(ushort)(int)ROUND((float)dVar3 + DAT_002df2b8));
        WriteBlobMSBShort(image,0);
        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4 + dVar5));
        WriteBlobMSBShort(image,0);
        WriteBlobMSBShort(image,local_88);
        WriteBlobMSBShort(image,(ushort)local_8c);
        WriteBlobMSBShort(image,(ushort)local_9c);
        WriteBlobMSBShort(image,8);
        WriteBlobMSBLong(image,0);
        WriteBlobMSBLong(image,0);
        WriteBlobMSBLong(image,0);
        uVar28 = (undefined1)((uint)exception >> 8);
        uVar31 = (undefined2)((uint)exception >> 0x10);
        if (CVar20 == PseudoClass) {
          WriteBlobMSBLong(image,0);
          WriteBlobMSBShort(image,0);
          WriteBlobMSBShort(image,(short)image->colors - 1);
          if (0 < (int)image->colors) {
            iVar18 = 0;
            iVar24 = 0;
            do {
              WriteBlobMSBShort(image,(ushort)iVar24);
              dVar3 = *(double *)((int)&image->colormap->red + iVar18);
              uVar10 = 0;
              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {
                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);
              }
              WriteBlobMSBShort(image,uVar10);
              dVar3 = *(double *)((int)&image->colormap->green + iVar18);
              uVar10 = 0;
              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {
                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);
              }
              WriteBlobMSBShort(image,uVar10);
              dVar3 = *(double *)((int)&image->colormap->blue + iVar18);
              uVar10 = 0;
              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {
                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);
              }
              iVar24 = iVar24 + 1;
              iVar18 = iVar18 + 0x50;
              WriteBlobMSBShort(image,uVar10);
            } while (iVar24 < (int)image->colors);
          }
          WriteBlobMSBShort(image,0);
          WriteBlobMSBShort(image,0);
          WriteBlobMSBShort(image,value_00);
          WriteBlobMSBShort(image,value);
          WriteBlobMSBShort(image,0);
          WriteBlobMSBShort(image,0);
          WriteBlobMSBShort(image,value_00);
          WriteBlobMSBShort(image,value);
          WriteBlobMSBShort(image,(ushort)local_90);
          local_9c = (undefined1 *)0x0;
          local_98 = 0;
          local_a0 = 0;
          uVar1 = 0;
          if (0 < (int)image->rows) {
            do {
              uVar29 = (char)exception;
              uVar30 = uVar28;
              uVar32 = uVar31;
              pQVar16 = GetVirtualPixels(image,0,local_a0,image->columns,1,exception);
              if (pQVar16 == (Quantum *)0x0) break;
              sVar14 = image->columns;
              if (0 < (int)sVar14) {
                sVar7 = image->number_channels;
                pPVar9 = image->channel_map;
                puVar19 = memory_00;
                do {
                  while (pPVar9[5].traits != UndefinedPixelTrait) {
                    puVar21 = puVar19 + 1;
                    pdVar2 = pQVar16 + pPVar9[5].offset;
                    pQVar16 = pQVar16 + sVar7;
                    *puVar19 = (char)(short)ROUND(*pdVar2);
                    puVar19 = puVar21;
                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;
                  }
                  *puVar19 = 0;
                  puVar19 = puVar19 + 1;
                  pQVar16 = pQVar16 + sVar7;
                } while (puVar19 != memory_00 + sVar14);
              }
LAB_00279a01:
              sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),
                                   (size_t)pEVar15,(uchar *)pixels);
              uVar1 = uVar1 + sVar14;
              if ((image->previous == (_Image *)0x0) &&
                 (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),
                                            (ulonglong)image->rows), MVar11 == MagickFalse)) break;
              local_a0 = local_a0 + 1;
              bVar25 = 0xfffffffe < local_9c;
              local_9c = (undefined1 *)((int)local_9c + 1);
              local_98 = local_98 + (uint)bVar25;
            } while ((int)local_a0 < (int)image->rows);
            goto LAB_002792ae;
          }
        }
        else {
          WriteBlobMSBShort(image,0);
          WriteBlobMSBShort(image,0);
          WriteBlobMSBShort(image,value_00);
          WriteBlobMSBShort(image,value);
          WriteBlobMSBShort(image,0);
          WriteBlobMSBShort(image,0);
          WriteBlobMSBShort(image,value_00);
          WriteBlobMSBShort(image,value);
          WriteBlobMSBShort(image,(ushort)local_90);
          if (image_info->compression == JPEGCompression) {
            uVar28 = 0;
            uVar29 = 0;
            uVar31 = 0;
            pixels_00 = extraout_ECX;
            memset(memory_00,0,local_94);
            if (0 < (int)image->rows) {
              iVar18 = 0;
              uVar1 = 0;
              do {
                iVar18 = iVar18 + 1;
                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),
                                     local_94,pixels_00);
                uVar1 = uVar1 + sVar14;
              } while (iVar18 < (int)image->rows);
              goto LAB_002792ae;
            }
          }
          else {
            sVar14 = image->columns;
            local_a4 = memory_00 + sVar14 * 3;
            if (0 < (int)image->rows) {
              local_5c = 0;
              local_58 = 0;
              iVar18 = 0;
              uVar1 = 0;
              while (uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,
                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),
                    pQVar16 != (Quantum *)0x0) {
                sVar14 = image->columns;
                puVar19 = memory_00 + sVar14;
                puVar21 = puVar19 + sVar14;
                PVar8 = image->alpha_trait;
                local_9c = puVar19;
                local_90 = puVar21;
                local_8c = memory_00;
                if (PVar8 != UndefinedPixelTrait) {
                  local_90 = puVar21 + sVar14;
                  local_a4 = memory_00;
                  local_9c = puVar21;
                  local_8c = puVar19;
                }
                if (0 < (int)sVar14) {
                  sVar7 = image->number_channels;
                  sVar22 = 0;
                  pPVar9 = image->channel_map;
                  puVar19 = local_a4;
                  do {
                    uVar23 = 0;
                    if (0.0 < pQVar16[pPVar9->offset]) {
                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;
                      if ((double)DAT_002e8150 <= dVar3) {
                        uVar23 = 0xff;
                      }
                      else {
                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);
                      }
                    }
                    local_8c[sVar22] = uVar23;
                    uVar23 = 0;
                    if (0.0 < pQVar16[pPVar9[1].offset]) {
                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;
                      if ((double)DAT_002e8150 <= dVar3) {
                        uVar23 = 0xff;
                      }
                      else {
                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);
                      }
                    }
                    local_9c[sVar22] = uVar23;
                    uVar23 = 0;
                    if (0.0 < pQVar16[pPVar9[2].offset]) {
                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;
                      if ((double)DAT_002e8150 <= dVar3) {
                        uVar23 = 0xff;
                      }
                      else {
                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);
                      }
                    }
                    local_90[sVar22] = uVar23;
                    local_a4 = puVar19;
                    if (PVar8 != UndefinedPixelTrait) {
                      local_a4 = puVar19 + 1;
                      uVar23 = 0xff;
                      if (pPVar9[4].traits != UndefinedPixelTrait) {
                        uVar23 = 0;
                        if (0.0 < pQVar16[pPVar9[4].offset]) {
                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;
                          if ((double)DAT_002e8150 <= dVar3) {
                            uVar23 = 0xff;
                          }
                          else {
                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);
                          }
                        }
                      }
                      *puVar19 = uVar23;
                    }
                    pQVar16 = pQVar16 + sVar7;
                    sVar22 = sVar22 + 1;
                    puVar19 = local_a4;
                  } while (sVar14 != sVar22);
                }
                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),
                                     (size_t)pEVar15,(uchar *)pixels);
                uVar1 = uVar1 + sVar14;
                if ((image->previous == (_Image *)0x0) &&
                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),
                                              (ulonglong)image->rows), MVar11 == MagickFalse))
                break;
                iVar18 = iVar18 + 1;
                bVar25 = 0xfffffffe < local_5c;
                local_5c = local_5c + 1;
                local_58 = local_58 + (uint)bVar25;
                if ((int)image->rows <= iVar18) break;
                sVar14 = image->columns;
              }
LAB_002792ae:
              if ((uVar1 & 1) != 0) {
                WriteBlobByte(image,'\0');
              }
            }
          }
        }
        WriteBlobMSBShort(image,0xff);
        TellBlob(image);
        MVar27 = SeekBlob(image,0x200,0);
        WriteBlobMSBShort(image,(ushort)MVar27);
        RelinquishMagickMemory(memory_00);
        RelinquishMagickMemory(pIVar12);
        RelinquishMagickMemory(memory);
        CloseBlob(image);
        MVar11 = MagickTrue;
        goto LAB_0027872e;
      }
LAB_0027924d:
      RelinquishMagickMemory(pIVar12);
    }
    if (memory != (ExceptionInfo *)0x0) {
      RelinquishMagickMemory(memory);
    }
    ThrowMagickException
              (exception,"coders/pict.c","WritePICTImage",0x710,ErrorException,
               "MemoryAllocationFailed","`%s\'",0x6e,image->filename);
    p_Var6 = (_Image *)image_info->adjoin;
    pIVar12 = image;
    while (pIVar17 = pIVar12, p_Var6 != (_Image *)0x0) {
      p_Var6 = pIVar17->previous;
      pIVar12 = p_Var6;
      image = pIVar17;
    }
  }
  else {
    ThrowMagickException
              (exception,"coders/pict.c","WritePICTImage",0x6bc,ImageError,
               "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename);
    if (image_info->adjoin != MagickFalse) {
      pIVar12 = image->previous;
      while (pIVar17 = pIVar12, pIVar17 != (Image *)0x0) {
        image = pIVar17;
        pIVar12 = pIVar17->previous;
      }
    }
  }
LAB_00278720:
  CloseBlob(image);
  MVar11 = MagickFalse;
LAB_0027872e:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return MVar11;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

int FUN_00278530(int *param_1,int *param_2,int param_3)

{
  double *pdVar1;
  double dVar2;
  double dVar3;
  double dVar4;
  int *piVar5;
  int iVar6;
  int iVar7;
  int *piVar8;
  int *piVar9;
  short sVar10;
  undefined2 uVar11;
  int iVar12;
  undefined4 *puVar13;
  void *__s;
  undefined1 *__s_00;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  int iVar17;
  int iVar18;
  uint uVar19;
  int iVar20;
  undefined4 extraout_ECX;
  undefined1 *puVar21;
  undefined4 extraout_ECX_00;
  undefined1 *puVar22;
  int iVar23;
  undefined1 uVar24;
  undefined4 *puVar25;
  uint uVar26;
  uint uVar27;
  int in_GS_OFFSET;
  bool bVar28;
  byte bVar29;
  undefined1 *local_a4;
  uint local_a0;
  undefined1 *local_9c;
  int local_98;
  size_t local_94;
  undefined1 *local_90;
  undefined1 *local_8c;
  undefined4 local_88;
  undefined4 local_84;
  uint local_5c;
  int local_58;
  uint local_24;
  int local_20;
  undefined4 uStack_14;
  
  bVar29 = 0;
  uStack_14 = 0x278539;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_1 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");
  }
  if (param_1[0xc7d] != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,
                  "WritePICTImage");
  }
  if (param_2 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");
  }
  if (param_2[0xcd1] != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");
  }
  if (param_2[0xcca] != 0) {
    LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6);
  }
  if (((uint)param_2[6] < 0x10000) && ((uint)param_2[7] < 0x10000)) {
    if (param_3 == 0) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");
    }
    if (*(int *)(param_3 + 0x1c) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,
                    "WritePICTImage");
    }
    iVar12 = OpenBlob(param_1,param_2,4,param_3);
    if (iVar12 == 0) goto LAB_0027872e;
    TransformImageColorspace(param_2,0x17,param_3);
    uVar14 = param_2[6];
    dVar2 = *(double *)(param_2 + 0x7c);
    if ((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)) {
      dVar3 = 0.0;
      dVar2 = 0.0;
    }
    else if (param_2[0x77] == 2) {
      dVar2 = dVar2 * _DAT_002f84b0;
      dVar3 = _DAT_002f84b0 * dVar3;
    }
    iVar12 = *param_2;
    if ((*param_1 == 0xc) || (iVar12 == 1)) {
      local_94 = uVar14 << 2;
      if (param_2[0xa5] == 0) {
        local_9c._0_2_ = 3;
        local_a0 = uVar14 * 3;
      }
      else {
        local_9c._0_2_ = 4;
        local_a0 = local_94;
      }
      local_90 = (undefined1 *)0x40;
      iVar12 = 1;
      local_8c = (undefined1 *)0x20;
      local_88 = 0x10;
      local_84 = 4;
    }
    else {
      local_90 = (undefined1 *)0x0;
      local_8c = (undefined1 *)0x8;
      local_88 = 0;
      local_84 = 0;
      local_9c._0_2_ = 1;
      local_a0 = uVar14;
      local_94 = uVar14;
    }
    if ((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)) {
      ThrowMagickException
                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",
                 "`%s\'",param_2 + 0xc6);
      piVar5 = (int *)param_1[3];
      piVar9 = param_2;
      while (piVar8 = piVar9, piVar5 != (int *)0x0) {
        piVar5 = (int *)piVar8[0xccf];
        piVar9 = piVar5;
        param_2 = piVar8;
      }
      goto LAB_00278720;
    }
    uVar26 = param_2[7];
    puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1);
    __s = (void *)AcquireQuantumMemory(uVar27,1);
    __s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);
    if ((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)) {
      if (__s_00 != (undefined1 *)0x0) {
        RelinquishMagickMemory(__s_00);
      }
      if (__s != (void *)0x0) goto LAB_0027924d;
    }
    else {
      if (__s_00 != (undefined1 *)0x0) {
        memset(__s_00,0,local_94);
        memset(__s,0,uVar27);
        puVar25 = puVar13;
        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {
          *puVar25 = 0;
          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;
        }
        WriteBlob(param_2,0x200,puVar13);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,0);
        uVar26 = uVar26 & 0xffff;
        WriteBlobMSBShort(param_2,uVar26);
        uVar14 = uVar14 & 0xffff;
        WriteBlobMSBShort(param_2,uVar14);
        WriteBlobMSBShort(param_2,0x11);
        WriteBlobMSBShort(param_2,0x2ff);
        WriteBlobMSBShort(param_2,0xc00);
        WriteBlobMSBLong(param_2,0xfffe0000);
        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,uVar26);
        WriteBlobMSBShort(param_2,uVar14);
        WriteBlobMSBLong(param_2,0);
        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);
        if (iVar20 != 0) {
          WriteBlobMSBShort(param_2,0xa1);
          WriteBlobMSBShort(param_2,0x1f2);
          sVar10 = GetStringInfoLength(iVar20);
          WriteBlobMSBShort(param_2,sVar10 + 4);
          WriteBlobString(param_2,&DAT_002e24fa);
          uVar15 = GetStringInfoDatum(iVar20);
          uVar16 = GetStringInfoLength(iVar20);
          WriteBlob(param_2,uVar16,uVar15);
        }
        iVar20 = GetImageProfile(param_2,&DAT_002e832a);
        if (iVar20 != 0) {
          WriteBlobMSBShort(param_2,0xa1);
          WriteBlobMSBShort(param_2,0xe0);
          sVar10 = GetStringInfoLength(iVar20);
          WriteBlobMSBShort(param_2,sVar10 + 4);
          WriteBlobMSBLong(param_2,0);
          uVar15 = GetStringInfoDatum(iVar20);
          uVar16 = GetStringInfoLength(iVar20);
          WriteBlob(param_2,uVar16,uVar15);
          WriteBlobMSBShort(param_2,0xa1);
          WriteBlobMSBShort(param_2,0xe0);
          WriteBlobMSBShort(param_2,4);
          WriteBlobMSBLong(param_2,2);
        }
        WriteBlobMSBShort(param_2,1);
        WriteBlobMSBShort(param_2,10);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,uVar26);
        WriteBlobMSBShort(param_2,uVar14);
        if (*param_1 == 0xc) {
          iVar20 = CloneImage(param_2,0,0,1,param_3);
          if (iVar20 == 0) {
            CloseBlob(param_2);
          }
          else {
            iVar17 = CloneImageInfo(param_1);
            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);
            local_24 = 0;
            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);
            DestroyImageInfo(iVar17);
            if (iVar18 != 0) {
              DestroyImage(iVar20);
              WriteBlobMSBShort(param_2,0x8200);
              WriteBlobMSBLong(param_2,local_24 + 0x9a);
              WriteBlobMSBShort(param_2,0);
              WriteBlobMSBLong(param_2,0x10000);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0x10000);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0x40000000);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0x400000);
              WriteBlobMSBShort(param_2,0);
              WriteBlobMSBShort(param_2,(short)param_2[7]);
              WriteBlobMSBShort(param_2,(short)param_2[6]);
              WriteBlobMSBShort(param_2,0);
              WriteBlobMSBShort(param_2,0x300);
              WriteBlobMSBShort(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0x566a70);
              WriteBlobMSBLong(param_2,0x65670000);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,1);
              WriteBlobMSBLong(param_2,0x16170);
              WriteBlobMSBLong(param_2,0x706c0000);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBShort(param_2,0x300);
              WriteBlobMSBShort(param_2,(short)param_2[6]);
              WriteBlobMSBShort(param_2,(short)param_2[7]);
              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);
              WriteBlobMSBShort(param_2,0);
              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);
              WriteBlobMSBShort(param_2,0);
              WriteBlobMSBLong(param_2,local_24);
              WriteBlobMSBShort(param_2,1);
              WriteBlobMSBLong(param_2,0xb466f74);
              WriteBlobMSBLong(param_2,0x6f202d20);
              WriteBlobMSBLong(param_2,0x4a504547);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,&DAT_0018ffff);
              WriteBlob(param_2,local_24,iVar18);
              if ((local_24 & 1) != 0) {
                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);
              }
              RelinquishMagickMemory(iVar18);
              goto LAB_00278cac;
            }
          }
          iVar12 = 0;
          goto LAB_0027872e;
        }
LAB_00278cac:
        if (iVar12 == 2) {
          WriteBlobMSBShort(param_2,0x98);
        }
        else {
          WriteBlobMSBShort(param_2,0x9a);
          WriteBlobMSBLong(param_2,0xff);
        }
        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,uVar26);
        WriteBlobMSBShort(param_2,uVar14);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,local_84);
        WriteBlobMSBLong(param_2,0);
        dVar4 = (double)DAT_002df2b8;
        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,local_88);
        WriteBlobMSBShort(param_2,local_8c);
        WriteBlobMSBShort(param_2,local_9c._0_2_);
        WriteBlobMSBShort(param_2,8);
        WriteBlobMSBLong(param_2,0);
        WriteBlobMSBLong(param_2,0);
        WriteBlobMSBLong(param_2,0);
        if (iVar12 == 2) {
          WriteBlobMSBLong(param_2,0);
          WriteBlobMSBShort(param_2,0);
          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);
          if (0 < param_2[9]) {
            iVar12 = 0;
            uVar27 = 0;
            do {
              WriteBlobMSBShort(param_2,uVar27 & 0xffff);
              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);
              uVar19 = 0;
              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {
                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;
              }
              WriteBlobMSBShort(param_2,uVar19);
              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);
              uVar19 = 0;
              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {
                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;
              }
              WriteBlobMSBShort(param_2,uVar19);
              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);
              uVar19 = 0;
              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {
                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;
              }
              uVar27 = uVar27 + 1;
              iVar12 = iVar12 + 0x50;
              WriteBlobMSBShort(param_2,uVar19);
            } while ((int)uVar27 < param_2[9]);
          }
          WriteBlobMSBShort(param_2,0);
          WriteBlobMSBShort(param_2,0);
          WriteBlobMSBShort(param_2,uVar26);
          WriteBlobMSBShort(param_2,uVar14);
          WriteBlobMSBShort(param_2,0);
          WriteBlobMSBShort(param_2,0);
          WriteBlobMSBShort(param_2,uVar26);
          WriteBlobMSBShort(param_2,uVar14);
          WriteBlobMSBShort(param_2,local_90);
          local_9c = (undefined1 *)0x0;
          local_98 = 0;
          local_a0 = 0;
          uVar14 = 0;
          if (0 < param_2[7]) {
            do {
              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);
              if (iVar12 == 0) break;
              iVar20 = param_2[6];
              if (0 < iVar20) {
                iVar17 = param_2[0xa6];
                iVar18 = param_2[0xaa];
                puVar21 = __s_00;
                do {
                  while (*(int *)(iVar18 + 0x40) != 0) {
                    puVar22 = puVar21 + 1;
                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);
                    iVar12 = iVar12 + iVar17 * 8;
                    *puVar21 = (char)(short)ROUND(*pdVar1);
                    puVar21 = puVar22;
                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;
                  }
                  *puVar21 = 0;
                  puVar21 = puVar21 + 1;
                  iVar12 = iVar12 + iVar17 * 8;
                } while (puVar21 != __s_00 + iVar20);
              }
LAB_00279a01:
              iVar12 = FUN_00277f10(__s);
              uVar14 = uVar14 + iVar12;
              if ((param_2[0xccf] == 0) &&
                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),
                 iVar12 == 0)) break;
              local_a0 = local_a0 + 1;
              bVar28 = 0xfffffffe < local_9c;
              local_9c = (undefined1 *)((int)local_9c + 1);
              local_98 = local_98 + (uint)bVar28;
            } while ((int)local_a0 < param_2[7]);
            goto LAB_002792ae;
          }
        }
        else {
          WriteBlobMSBShort(param_2,0);
          WriteBlobMSBShort(param_2,0);
          WriteBlobMSBShort(param_2,uVar26);
          WriteBlobMSBShort(param_2,uVar14);
          WriteBlobMSBShort(param_2,0);
          WriteBlobMSBShort(param_2,0);
          WriteBlobMSBShort(param_2,uVar26);
          WriteBlobMSBShort(param_2,uVar14);
          WriteBlobMSBShort(param_2,local_90);
          if (*param_1 == 0xc) {
            uVar16 = 0;
            uVar15 = extraout_ECX;
            memset(__s_00,0,local_94);
            if (0 < param_2[7]) {
              iVar12 = 0;
              uVar14 = 0;
              do {
                iVar12 = iVar12 + 1;
                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);
                uVar14 = uVar14 + iVar20;
              } while (iVar12 < param_2[7]);
              goto LAB_002792ae;
            }
          }
          else {
            iVar12 = param_2[6];
            local_a4 = __s_00 + iVar12 * 3;
            if (0 < param_2[7]) {
              local_5c = 0;
              local_58 = 0;
              iVar20 = 0;
              uVar14 = 0;
              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {
                iVar17 = param_2[6];
                puVar21 = __s_00 + iVar17;
                puVar22 = puVar21 + iVar17;
                iVar18 = param_2[0xa5];
                local_9c = puVar21;
                local_90 = puVar22;
                local_8c = __s_00;
                if (iVar18 != 0) {
                  local_90 = puVar22 + iVar17;
                  local_a4 = __s_00;
                  local_9c = puVar22;
                  local_8c = puVar21;
                }
                if (0 < iVar17) {
                  iVar6 = param_2[0xa6];
                  iVar23 = 0;
                  iVar7 = param_2[0xaa];
                  puVar21 = local_a4;
                  do {
                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);
                    uVar24 = 0;
                    if (0.0 < dVar2) {
                      dVar2 = dVar2 / (double)DAT_002e814c;
                      if ((double)DAT_002e8150 <= dVar2) {
                        uVar24 = 0xff;
                      }
                      else {
                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                      }
                    }
                    local_8c[iVar23] = uVar24;
                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);
                    uVar24 = 0;
                    if (0.0 < dVar2) {
                      dVar2 = dVar2 / (double)DAT_002e814c;
                      if ((double)DAT_002e8150 <= dVar2) {
                        uVar24 = 0xff;
                      }
                      else {
                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                      }
                    }
                    local_9c[iVar23] = uVar24;
                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);
                    uVar24 = 0;
                    if (0.0 < dVar2) {
                      dVar2 = dVar2 / (double)DAT_002e814c;
                      if ((double)DAT_002e8150 <= dVar2) {
                        uVar24 = 0xff;
                      }
                      else {
                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                      }
                    }
                    local_90[iVar23] = uVar24;
                    local_a4 = puVar21;
                    if (iVar18 != 0) {
                      local_a4 = puVar21 + 1;
                      uVar24 = 0xff;
                      if (*(int *)(iVar7 + 0x34) != 0) {
                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);
                        uVar24 = 0;
                        if (0.0 < dVar2) {
                          dVar2 = dVar2 / (double)DAT_002e814c;
                          if ((double)DAT_002e8150 <= dVar2) {
                            uVar24 = 0xff;
                          }
                          else {
                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                          }
                        }
                      }
                      *puVar21 = uVar24;
                    }
                    iVar12 = iVar12 + iVar6 * 8;
                    iVar23 = iVar23 + 1;
                    puVar21 = local_a4;
                  } while (iVar17 != iVar23);
                }
                iVar12 = FUN_00277f10(__s);
                uVar14 = uVar14 + iVar12;
                if ((param_2[0xccf] == 0) &&
                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),
                   iVar12 == 0)) break;
                iVar20 = iVar20 + 1;
                bVar28 = 0xfffffffe < local_5c;
                local_5c = local_5c + 1;
                local_58 = local_58 + (uint)bVar28;
                if (param_2[7] <= iVar20) break;
                iVar12 = param_2[6];
              }
LAB_002792ae:
              if ((uVar14 & 1) != 0) {
                WriteBlobByte(param_2,0);
              }
            }
          }
        }
        WriteBlobMSBShort(param_2,0xff);
        TellBlob(param_2);
        uVar11 = SeekBlob(param_2,0x200,0,0);
        WriteBlobMSBShort(param_2,uVar11);
        RelinquishMagickMemory(__s_00);
        RelinquishMagickMemory(__s);
        RelinquishMagickMemory(puVar13);
        CloseBlob(param_2);
        iVar12 = 1;
        goto LAB_0027872e;
      }
LAB_0027924d:
      RelinquishMagickMemory(__s);
    }
    if (puVar13 != (undefined4 *)0x0) {
      RelinquishMagickMemory(puVar13);
    }
    ThrowMagickException
              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",
               param_2 + 0xc6);
    piVar5 = (int *)param_1[3];
    piVar9 = param_2;
    while (piVar8 = piVar9, piVar5 != (int *)0x0) {
      piVar5 = (int *)piVar8[0xccf];
      piVar9 = piVar5;
      param_2 = piVar8;
    }
  }
  else {
    ThrowMagickException
              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",
               "`%s\'",param_2 + 0xc6);
    if (param_1[3] != 0) {
      piVar5 = (int *)param_2[0xccf];
      while (piVar9 = piVar5, piVar9 != (int *)0x0) {
        param_2 = piVar9;
        piVar5 = (int *)piVar9[0xccf];
      }
    }
  }
LAB_00278720:
  CloseBlob(param_2);
  iVar12 = 0;
LAB_0027872e:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return iVar12;
  }
                    /* WARNING: Subroutine does not return */
  FUN_002decd0();
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00039d70
ADD EBX,0x1a5ac7
SUB ESP,0x9c
MOV EAX,dword ptr [ESP + 0xb8]
MOV ESI,dword ptr [ESP + 0xb0]
MOV EBP,dword ptr [ESP + 0xb4]
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x8c],EAX
XOR EAX,EAX
TEST ESI,ESI
JZ 0x00279b00
CMP dword ptr [ESI + 0x31f4],0xabacadab
JNZ 0x00279ae1
TEST EBP,EBP
JZ 0x00279ac2
CMP dword ptr [EBP + 0x3344],0xabacadab
JNZ 0x00279aa3
MOV EDI,dword ptr [EBP + 0x3328]
TEST EDI,EDI
JNZ 0x002787b8
CMP dword ptr [EBP + 0x18],0xffff
JA 0x00278750
CMP dword ptr [EBP + 0x1c],0xffff
JA 0x00278750
MOV ECX,dword ptr [ESP + 0x4]
TEST ECX,ECX
JZ 0x00279b43
MOV EAX,dword ptr [ESP + 0x4]
CMP dword ptr [EAX + 0x1c],0xabacadab
JNZ 0x00279b24
PUSH dword ptr [ESP + 0x4]
PUSH 0x4
PUSH EBP
PUSH ESI
CALL 0x00032230
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0027872e
SUB ESP,0x4
PUSH dword ptr [ESP + 0x8]
PUSH 0x17
PUSH EBP
CALL 0x00032530
MOV EAX,dword ptr [EBP + 0x18]
FLD qword ptr [EBX + 0xffec12d0]
FLD qword ptr [EBP + 0x1f0]
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
FUCOMI ST0,ST1
JBE 0x00278640
FLD qword ptr [EBP + 0x1f8]
FUCOMI ST0,ST2
FSTP ST2
JA 0x00278860
FSTP ST0
FSTP ST0
JMP 0x00278644
FSTP ST0
FSTP ST0
FLDZ
FLDZ
CMP dword ptr [ESI],0xc
MOV EDX,dword ptr [EBP]
MOV EAX,dword ptr [ESP + 0x8]
JZ 0x002787f0
CMP EDX,0x1
JZ 0x002787f0
MOV ECX,0x1
MOV dword ptr [ESP + 0x18],EAX
MOV dword ptr [ESP + 0xc],EAX
MOV dword ptr [ESP + 0x1c],0x0
MOV dword ptr [ESP + 0x20],0x8
MOV dword ptr [ESP + 0x24],0x0
MOV dword ptr [ESP + 0x28],0x0
MOV word ptr [ESP + 0x10],CX
SUB EAX,0x1
CMP EAX,0x7ffe
JA 0x002786c0
MOV EAX,dword ptr [ESP + 0x18]
LEA EDI,[EAX + 0x100]
CMP EDI,0x7ffe
JBE 0x00278880
FSTP ST0
FSTP ST0
JMP 0x002786c4
FSTP ST0
FSTP ST0
LEA EAX,[EBP + 0x318]
PUSH EAX
LEA EAX,[EBX + 0xffec3be0]
PUSH EAX
LEA EAX,[EBX + 0xffec0f2e]
PUSH EAX
LEA EAX,[EBX + 0xfff29bc8]
PUSH 0x1d1
PUSH 0x700
PUSH EAX
LEA EAX,[EBX + 0xfff29be7]
PUSH EAX
PUSH dword ptr [ESP + 0x20]
CALL 0x00032e80
MOV EAX,dword ptr [ESI + 0xc]
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x00278712
JMP 0x00278720
MOV EBP,EAX
MOV EAX,dword ptr [EBP + 0x333c]
TEST EAX,EAX
JNZ 0x00278710
LEA ESI,[ESI]
SUB ESP,0xc
PUSH EBP
CALL 0x000311d0
ADD ESP,0x10
XOR EAX,EAX
MOV EDI,dword ptr [ESP + 0x8c]
XOR EDI,dword ptr GS:[0x14]
JNZ 0x00279b1f
ADD ESP,0x9c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[EBP + 0x318]
PUSH EAX
LEA EAX,[EBX + 0xffec3be0]
PUSH EAX
LEA EAX,[EBX + 0xffec0f2e]
PUSH EAX
LEA EAX,[EBX + 0xfff29bc8]
PUSH 0x1d1
PUSH 0x6bc
PUSH EAX
LEA EAX,[EBX + 0xfff29be7]
PUSH EAX
PUSH dword ptr [ESP + 0x20]
CALL 0x00032e80
MOV ESI,dword ptr [ESI + 0xc]
ADD ESP,0x20
TEST ESI,ESI
JZ 0x00278720
MOV EAX,dword ptr [EBP + 0x333c]
TEST EAX,EAX
JZ 0x00278720
LEA ESI,[ESI]
MOV EBP,EAX
MOV EAX,dword ptr [EBP + 0x333c]
TEST EAX,EAX
JNZ 0x002787a0
JMP 0x00278720
LEA EAX,[EBP + 0x318]
SUB ESP,0x8
PUSH EAX
LEA EAX,[EBX + 0xffed95ae]
PUSH EAX
LEA EAX,[EBX + 0xfff29bc8]
PUSH 0x6ba
PUSH EAX
LEA EAX,[EBX + 0xfff29be7]
PUSH EAX
PUSH 0x8000
CALL 0x000323b0
ADD ESP,0x20
JMP 0x002785ab
MOV EDX,dword ptr [EBP + 0x294]
SHL EAX,0x2
MOV dword ptr [ESP + 0x18],EAX
TEST EDX,EDX
JNZ 0x00278848
MOV EAX,dword ptr [ESP + 0x8]
LEA EAX,[EAX + EAX*0x2]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,0x3
MOV word ptr [ESP + 0x10],AX
MOV dword ptr [ESP + 0x1c],0x40
MOV EDX,0x1
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x20],0x20
MOV dword ptr [ESP + 0x24],0x10
MOV dword ptr [ESP + 0x28],0x4
JMP 0x00278693
MOV EDI,0x4
MOV dword ptr [ESP + 0xc],EAX
MOV word ptr [ESP + 0x10],DI
JMP 0x00278816
CMP dword ptr [EBP + 0x1dc],0x2
JNZ 0x00278648
FLD qword ptr [EBX + 0xffeda4b0]
FMUL ST1
FMULP ST2
JMP 0x00278648
FXCH
MOV EAX,dword ptr [EBP + 0x1c]
FSTP qword ptr [ESP + 0x40]
SUB ESP,0x8
MOV dword ptr [ESP + 0x50],EDX
FSTP qword ptr [ESP + 0x40]
MOV dword ptr [ESP + 0x58],EAX
PUSH 0x1
PUSH 0x200
CALL 0x000317b0
MOV dword ptr [ESP + 0x70],EAX
POP EAX
POP EDX
PUSH 0x1
PUSH EDI
CALL 0x000317b0
MOV dword ptr [ESP + 0x44],EAX
POP ECX
POP EAX
PUSH 0x1
PUSH dword ptr [ESP + 0x24]
CALL 0x000317b0
MOV dword ptr [ESP + 0x40],EAX
ADD ESP,0x10
MOV ECX,EAX
MOV EAX,dword ptr [ESP + 0x60]
TEST EAX,EAX
JZ 0x002791be
MOV EAX,dword ptr [ESP + 0x34]
TEST EAX,EAX
JZ 0x002791be
TEST ECX,ECX
FLD qword ptr [ESP + 0x38]
MOV EDX,dword ptr [ESP + 0x48]
FLD qword ptr [ESP + 0x40]
JZ 0x00279249
FSTP qword ptr [ESP + 0x48]
SUB ESP,0x4
FSTP qword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x5c],EDX
PUSH dword ptr [ESP + 0x1c]
PUSH 0x0
PUSH dword ptr [ESP + 0x3c]
CALL 0x000310a0
ADD ESP,0xc
PUSH EDI
PUSH 0x0
PUSH dword ptr [ESP + 0x40]
CALL 0x000310a0
MOV EDI,dword ptr [ESP + 0x70]
XOR EAX,EAX
MOV ECX,0x80
ADD ESP,0xc
STOSD.REP ES:EDI
PUSH dword ptr [ESP + 0x64]
PUSH 0x200
PUSH EBP
CALL 0x00030660
POP ECX
POP EDI
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP ECX
POP EDI
PUSH 0x0
PUSH EBP
CALL 0x00032150
MOVZX EDI,word ptr [ESP + 0x60]
POP EAX
POP EDX
PUSH EDI
PUSH EBP
CALL 0x00032150
MOVZX EAX,word ptr [ESP + 0x18]
POP ECX
POP EDX
MOV dword ptr [ESP + 0x10],EAX
PUSH EAX
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH 0x11
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x2ff
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH 0xc00
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0xfffe0000
PUSH EBP
CALL 0x00032030
FLD qword ptr [ESP + 0x48]
FNSTCW word ptr [ESP + 0x8e]
MOVZX EAX,word ptr [ESP + 0x8e]
OR AH,0xc
MOV word ptr [ESP + 0x8c],AX
FLDCW word ptr [ESP + 0x8c]
FIST dword ptr [ESP + 0x84]
FLDCW word ptr [ESP + 0x8e]
MOV EAX,dword ptr [ESP + 0x84]
MOVZX EDX,AX
FSTP qword ptr [ESP + 0x50]
MOV dword ptr [ESP + 0x60],EDX
POP ECX
POP EAX
PUSH EDX
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032150
FLD qword ptr [ESP + 0x58]
FNSTCW word ptr [ESP + 0x8e]
MOVZX EAX,word ptr [ESP + 0x8e]
OR AH,0xc
MOV word ptr [ESP + 0x8c],AX
FLDCW word ptr [ESP + 0x8c]
FIST dword ptr [ESP + 0x84]
FLDCW word ptr [ESP + 0x8e]
MOV EAX,dword ptr [ESP + 0x84]
MOVZX EDX,AX
FSTP qword ptr [ESP + 0x48]
MOV dword ptr [ESP + 0x74],EDX
POP ECX
POP EAX
PUSH EDX
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH EDI
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH dword ptr [ESP + 0x10]
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP EAX
LEA EAX,[EBX + 0xffece69d]
POP EDX
PUSH EAX
PUSH EBP
CALL 0x00031c60
ADD ESP,0x10
FLD qword ptr [ESP + 0x38]
TEST EAX,EAX
MOV dword ptr [ESP + 0x48],EAX
FLD qword ptr [ESP + 0x40]
MOV EDX,dword ptr [ESP + 0x58]
JZ 0x00278b56
FXCH
FSTP qword ptr [ESP + 0x68]
SUB ESP,0x8
FSTP qword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0x78],EDX
PUSH 0xa1
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH 0x1f2
PUSH EBP
CALL 0x00032150
MOV ECX,dword ptr [ESP + 0x58]
MOV dword ptr [ESP],ECX
MOV dword ptr [ESP + 0x48],ECX
CALL 0x000335d0
POP EDX
POP ECX
ADD EAX,0x4
MOVZX EAX,AX
PUSH EAX
PUSH EBP
CALL 0x00032150
POP EAX
LEA EAX,[EBX + 0xffec44fa]
POP EDX
PUSH EAX
PUSH EBP
CALL 0x00031550
MOV ECX,dword ptr [ESP + 0x48]
MOV dword ptr [ESP],ECX
MOV dword ptr [ESP + 0x50],ECX
CALL 0x00033130
MOV ECX,dword ptr [ESP + 0x50]
MOV dword ptr [ESP + 0x48],EAX
MOV dword ptr [ESP],ECX
CALL 0x000335d0
ADD ESP,0xc
PUSH dword ptr [ESP + 0x3c]
PUSH EAX
PUSH EBP
CALL 0x00030660
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x70]
FLD qword ptr [ESP + 0x58]
FLD qword ptr [ESP + 0x68]
JMP 0x00278b58
FXCH
FSTP qword ptr [ESP + 0x40]
LEA EAX,[EBX + 0xffeca32a]
SUB ESP,0x8
MOV dword ptr [ESP + 0x50],EDX
FSTP qword ptr [ESP + 0x40]
PUSH EAX
PUSH EBP
CALL 0x00031c60
ADD ESP,0x10
FLD qword ptr [ESP + 0x38]
TEST EAX,EAX
MOV dword ptr [ESP + 0x58],EAX
FLD qword ptr [ESP + 0x40]
MOV EDX,dword ptr [ESP + 0x48]
JZ 0x00278c4a
FSTP qword ptr [ESP + 0x68]
SUB ESP,0x8
FSTP qword ptr [ESP + 0x50]
MOV dword ptr [ESP + 0x78],EDX
PUSH 0xa1
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH 0xe0
PUSH EBP
CALL 0x00032150
MOV ECX,dword ptr [ESP + 0x68]
MOV dword ptr [ESP],ECX
MOV dword ptr [ESP + 0x48],ECX
CALL 0x000335d0
POP EDX
POP ECX
ADD EAX,0x4
MOVZX EAX,AX
PUSH EAX
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032030
MOV ECX,dword ptr [ESP + 0x48]
MOV dword ptr [ESP],ECX
MOV dword ptr [ESP + 0x50],ECX
CALL 0x00033130
MOV ECX,dword ptr [ESP + 0x50]
MOV dword ptr [ESP + 0x48],EAX
MOV dword ptr [ESP],ECX
CALL 0x000335d0
ADD ESP,0xc
PUSH dword ptr [ESP + 0x3c]
PUSH EAX
PUSH EBP
CALL 0x00030660
POP ECX
POP EAX
PUSH 0xa1
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0xe0
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH 0x4
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x2
PUSH EBP
CALL 0x00032030
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x70]
FLD qword ptr [ESP + 0x48]
FLD qword ptr [ESP + 0x68]
FSTP qword ptr [ESP + 0x40]
SUB ESP,0x8
MOV dword ptr [ESP + 0x50],EDX
FSTP qword ptr [ESP + 0x40]
PUSH 0x1
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0xa
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH EDI
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH dword ptr [ESP + 0x10]
PUSH EBP
CALL 0x00032150
ADD ESP,0x10
CMP dword ptr [ESI],0xc
FLD qword ptr [ESP + 0x38]
MOV EDX,dword ptr [ESP + 0x48]
FLD qword ptr [ESP + 0x40]
JZ 0x002793c2
FSTP qword ptr [ESP + 0x40]
MOV dword ptr [ESP + 0x48],EDX
FSTP qword ptr [ESP + 0x38]
CMP EDX,0x2
JZ 0x002793a0
SUB ESP,0x8
PUSH 0x9a
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0xff
PUSH EBP
CALL 0x00032030
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x48]
FLD qword ptr [ESP + 0x38]
FLD qword ptr [ESP + 0x40]
FSTP qword ptr [ESP + 0x40]
SUB ESP,0x8
FSTP qword ptr [ESP + 0x40]
MOV dword ptr [ESP + 0x50],EDX
MOVZX EAX,word ptr [ESP + 0x20]
OR AX,0x8000
MOVZX EAX,AX
PUSH EAX
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH EDI
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH dword ptr [ESP + 0x10]
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH dword ptr [ESP + 0x30]
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP ECX
POP EAX
FLD dword ptr [EBX + 0xffec12b8]
FLD qword ptr [ESP + 0x40]
FADD ST0,ST1
FXCH
FNSTCW word ptr [ESP + 0x86]
MOVZX EAX,word ptr [ESP + 0x86]
FSTP qword ptr [ESP + 0x30]
OR AH,0xc
MOV word ptr [ESP + 0x84],AX
FLDCW word ptr [ESP + 0x84]
FISTP dword ptr [ESP + 0x7c]
FLDCW word ptr [ESP + 0x86]
MOV EAX,dword ptr [ESP + 0x7c]
MOVZX EAX,AX
PUSH EAX
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
FLD qword ptr [ESP + 0x30]
FLD qword ptr [ESP + 0x48]
FADDP
FNSTCW word ptr [ESP + 0x86]
MOVZX EAX,word ptr [ESP + 0x86]
OR AH,0xc
MOV word ptr [ESP + 0x84],AX
FLDCW word ptr [ESP + 0x84]
FISTP dword ptr [ESP + 0x7c]
FLDCW word ptr [ESP + 0x86]
MOV EAX,dword ptr [ESP + 0x7c]
MOVZX EAX,AX
PUSH EAX
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH dword ptr [ESP + 0x2c]
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH dword ptr [ESP + 0x28]
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
MOVSX EAX,word ptr [ESP + 0x18]
PUSH EAX
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x8
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP ECX
POP EAX
PUSH 0x0
PUSH EBP
CALL 0x00032030
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x48]
CMP EDX,0x2
JZ 0x00279732
SUB ESP,0x8
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP EDX
POP ECX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH EDI
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH dword ptr [ESP + 0x10]
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH EDI
PUSH EBP
CALL 0x00032150
POP ECX
POP EDI
PUSH dword ptr [ESP + 0x10]
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH dword ptr [ESP + 0x24]
PUSH EBP
CALL 0x00032150
ADD ESP,0x10
CMP dword ptr [ESI],0xc
JZ 0x00279261
MOV EAX,dword ptr [EBP + 0x18]
MOV EDI,dword ptr [ESP + 0x30]
LEA EDX,[EAX + EAX*0x2]
ADD EDI,EDX
MOV EDX,dword ptr [EBP + 0x1c]
TEST EDX,EDX
JLE 0x002792c3
MOV dword ptr [ESP + 0x50],0x0
MOV dword ptr [ESP + 0x54],0x0
MOV dword ptr [ESP + 0x38],0x0
MOV dword ptr [ESP + 0x40],0x0
MOV dword ptr [ESP + 0x8],EDI
LEA ESI,[ESI]
SUB ESP,0x8
PUSH dword ptr [ESP + 0xc]
PUSH 0x1
PUSH EAX
PUSH dword ptr [ESP + 0x4c]
PUSH 0x0
PUSH EBP
CALL 0x00030e70
ADD ESP,0x20
TEST EAX,EAX
JZ 0x002792ae
MOV ESI,dword ptr [ESP + 0x30]
MOV EDX,dword ptr [EBP + 0x18]
MOV ECX,ESI
MOV dword ptr [ESP + 0x20],ESI
ADD ECX,EDX
MOV EDI,EDX
MOV EDX,ECX
MOV dword ptr [ESP + 0x18],EDI
ADD EDX,EDI
MOV EDI,dword ptr [EBP + 0x294]
MOV dword ptr [ESP + 0x10],ECX
MOV dword ptr [ESP + 0x1c],EDX
MOV dword ptr [ESP + 0x24],EDI
TEST EDI,EDI
JZ 0x00278f6f
MOV dword ptr [ESP + 0x20],ECX
MOV ECX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x8],ESI
MOV dword ptr [ESP + 0x10],EDX
LEA EDI,[EDX + ECX*0x1]
MOV dword ptr [ESP + 0x1c],EDI
MOV ESI,dword ptr [ESP + 0x18]
TEST ESI,ESI
JLE 0x0027916f
MOV EDI,dword ptr [EBP + 0x298]
XOR EDX,EDX
MOV dword ptr [ESP + 0x48],EBP
MOV ECX,dword ptr [EBP + 0x2a8]
SHL EDI,0x3
MOV dword ptr [ESP + 0x28],EDI
MOV EDI,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x8],ECX
LEA ESI,[ESI]
MOV ECX,dword ptr [ESP + 0x8]
MOV ESI,dword ptr [ECX + 0x8]
FLD qword ptr [EAX + ESI*0x8]
XOR ESI,ESI
FUCOMI ST0,ST0
JP 0x00278ffb
FLDZ
FUCOMIP ST0,ST1
JNC 0x00279000
FDIV dword ptr [EBX + 0xffeca14c]
MOV ESI,0xffffffff
FLD dword ptr [EBX + 0xffeca150]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x00279008
FNSTCW word ptr [ESP + 0x7e]
FADD dword ptr [EBX + 0xffec12b8]
MOVZX ESI,word ptr [ESP + 0x7e]
OR SI,0xc00
MOV word ptr [ESP + 0x7c],SI
FLDCW word ptr [ESP + 0x7c]
FISTP word ptr [ESP + 0x7a]
FLDCW word ptr [ESP + 0x7e]
MOVZX ESI,word ptr [ESP + 0x7a]
JMP 0x00279010
FSTP ST0
JMP 0x00279010
FSTP ST0
JMP 0x00279010
FSTP ST0
LEA ESI,[ESI]
MOV EBP,dword ptr [ESP + 0x20]
MOV ECX,ESI
MOV byte ptr [EBP + EDX*0x1],CL
MOV ECX,dword ptr [ESP + 0x8]
MOV ESI,dword ptr [ECX + 0x14]
FLD qword ptr [EAX + ESI*0x8]
XOR ESI,ESI
FUCOMI ST0,ST0
JP 0x00279075
FLDZ
FUCOMIP ST0,ST1
JNC 0x00279080
FDIV dword ptr [EBX + 0xffeca14c]
MOV ESI,0xffffffff
FLD dword ptr [EBX + 0xffeca150]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x00279088
FNSTCW word ptr [ESP + 0x7e]
FADD dword ptr [EBX + 0xffec12b8]
MOVZX ESI,word ptr [ESP + 0x7e]
OR SI,0xc00
MOV word ptr [ESP + 0x7c],SI
FLDCW word ptr [ESP + 0x7c]
FISTP word ptr [ESP + 0x7a]
FLDCW word ptr [ESP + 0x7e]
MOVZX ESI,word ptr [ESP + 0x7a]
JMP 0x00279090
FSTP ST0
JMP 0x00279090
FSTP ST0
JMP 0x00279090
FSTP ST0
LEA ESI,[ESI]
MOV EBP,dword ptr [ESP + 0x10]
MOV ECX,ESI
MOV byte ptr [EBP + EDX*0x1],CL
MOV ECX,dword ptr [ESP + 0x8]
MOV ESI,dword ptr [ECX + 0x20]
FLD qword ptr [EAX + ESI*0x8]
XOR ESI,ESI
FUCOMI ST0,ST0
JP 0x002790f5
FLDZ
FUCOMIP ST0,ST1
JNC 0x00279100
FDIV dword ptr [EBX + 0xffeca14c]
MOV ESI,0xffffffff
FLD dword ptr [EBX + 0xffeca150]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x00279108
FNSTCW word ptr [ESP + 0x7e]
FADD dword ptr [EBX + 0xffec12b8]
MOVZX ESI,word ptr [ESP + 0x7e]
OR SI,0xc00
MOV word ptr [ESP + 0x7c],SI
FLDCW word ptr [ESP + 0x7c]
FISTP word ptr [ESP + 0x7a]
FLDCW word ptr [ESP + 0x7e]
MOVZX ESI,word ptr [ESP + 0x7a]
JMP 0x00279110
FSTP ST0
JMP 0x00279110
FSTP ST0
JMP 0x00279110
FSTP ST0
LEA ESI,[ESI]
MOV EBP,dword ptr [ESP + 0x1c]
MOV ECX,ESI
MOV byte ptr [EBP + EDX*0x1],CL
MOV ECX,dword ptr [ESP + 0x24]
TEST ECX,ECX
JZ 0x00279156
MOV ECX,dword ptr [ESP + 0x8]
LEA EBP,[EDI + 0x1]
MOV ESI,0xffffffff
CMP dword ptr [ECX + 0x34],0x0
JZ 0x00279150
MOV ESI,dword ptr [ECX + 0x38]
FLD qword ptr [EAX + ESI*0x8]
XOR ESI,ESI
FUCOMI ST0,ST0
JP 0x0027914e
FLDZ
FUCOMIP ST0,ST1
JC 0x0027932a
FSTP ST0
JMP 0x00279150
FSTP ST0
MOV ECX,ESI
MOV byte ptr [EDI],CL
MOV EDI,EBP
ADD EAX,dword ptr [ESP + 0x28]
ADD EDX,0x1
CMP dword ptr [ESP + 0x18],EDX
JNZ 0x00278fa0
MOV EBP,dword ptr [ESP + 0x48]
MOV dword ptr [ESP + 0x8],EDI
SUB ESP,0xc
MOV EAX,EBP
PUSH dword ptr [ESP + 0x40]
MOV ECX,dword ptr [ESP + 0x1c]
MOV EDX,dword ptr [ESP + 0x40]
CALL 0x00277f10
ADD dword ptr [ESP + 0x50],EAX
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0x333c]
TEST EAX,EAX
JZ 0x00279371
ADD dword ptr [ESP + 0x38],0x1
ADD dword ptr [ESP + 0x50],0x1
MOV EAX,dword ptr [ESP + 0x38]
ADC dword ptr [ESP + 0x54],0x0
CMP dword ptr [EBP + 0x1c],EAX
JLE 0x002792ae
MOV EAX,dword ptr [EBP + 0x18]
JMP 0x00278f08
MOV EAX,dword ptr [ESP + 0x30]
TEST EAX,EAX
JZ 0x002791d2
SUB ESP,0xc
PUSH EAX
CALL 0x00033ac8
ADD ESP,0x10
MOV EDI,dword ptr [ESP + 0x34]
TEST EDI,EDI
JNZ 0x0027924d
MOV EAX,dword ptr [ESP + 0x60]
TEST EAX,EAX
JZ 0x002791ee
SUB ESP,0xc
PUSH EAX
CALL 0x00033ac8
ADD ESP,0x10
LEA EAX,[EBP + 0x318]
PUSH EAX
LEA EAX,[EBX + 0xffec3be0]
PUSH EAX
LEA EAX,[EBX + 0xffec156e]
PUSH EAX
LEA EAX,[EBX + 0xfff29bc8]
PUSH 0x190
PUSH 0x710
PUSH EAX
LEA EAX,[EBX + 0xfff29be7]
PUSH EAX
PUSH dword ptr [ESP + 0x20]
CALL 0x00032e80
MOV ECX,dword ptr [ESI + 0xc]
ADD ESP,0x20
TEST ECX,ECX
JNZ 0x0027923a
JMP 0x00278720
MOV EBP,EAX
MOV EAX,dword ptr [EBP + 0x333c]
TEST EAX,EAX
JNZ 0x00279238
JMP 0x00278720
FSTP ST0
FSTP ST0
SUB ESP,0xc
PUSH dword ptr [ESP + 0x40]
CALL 0x00033ac8
ADD ESP,0x10
JMP 0x002791da
PUSH ECX
MOV ESI,dword ptr [ESP + 0x1c]
PUSH ESI
PUSH 0x0
PUSH dword ptr [ESP + 0x3c]
CALL 0x000310a0
ADD ESP,0x10
CMP dword ptr [EBP + 0x1c],0x0
JLE 0x002792c3
AND ESI,0x7fff
XOR EDI,EDI
MOV dword ptr [ESP + 0x40],0x0
SUB ESP,0xc
MOV ECX,ESI
MOV EAX,EBP
PUSH dword ptr [ESP + 0x40]
ADD EDI,0x1
MOV EDX,dword ptr [ESP + 0x40]
CALL 0x00277f10
ADD dword ptr [ESP + 0x50],EAX
ADD ESP,0x10
CMP dword ptr [EBP + 0x1c],EDI
JG 0x0027928b
TEST byte ptr [ESP + 0x40],0x1
JZ 0x002792c3
SUB ESP,0x8
PUSH 0x0
PUSH EBP
CALL 0x00032b80
ADD ESP,0x10
SUB ESP,0x8
PUSH 0xff
PUSH EBP
CALL 0x00032150
MOV dword ptr [ESP],EBP
CALL 0x00031f30
ADD ESP,0x10
PUSH 0x0
PUSH 0x0
PUSH 0x200
PUSH EBP
CALL 0x00031f00
POP ESI
POP EDI
MOVZX EAX,AX
PUSH EAX
PUSH EBP
CALL 0x00032150
POP EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x00033ac8
POP EAX
PUSH dword ptr [ESP + 0x40]
CALL 0x00033ac8
POP EAX
PUSH dword ptr [ESP + 0x6c]
CALL 0x00033ac8
MOV dword ptr [ESP],EBP
CALL 0x000311d0
ADD ESP,0x10
MOV EAX,0x1
JMP 0x0027872e
FDIV dword ptr [EBX + 0xffeca14c]
FLD dword ptr [EBX + 0xffeca150]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x00279b62
FNSTCW word ptr [ESP + 0x7e]
FADD dword ptr [EBX + 0xffec12b8]
MOVZX ESI,word ptr [ESP + 0x7e]
OR SI,0xc00
MOV word ptr [ESP + 0x7c],SI
FLDCW word ptr [ESP + 0x7c]
FISTP word ptr [ESP + 0x7a]
FLDCW word ptr [ESP + 0x7e]
MOVZX ESI,word ptr [ESP + 0x7a]
JMP 0x00279150
MOV EAX,dword ptr [EBP + 0x1c]
SUB ESP,0x8
XOR EDX,EDX
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xffeee986]
PUSH dword ptr [ESP + 0x64]
PUSH dword ptr [ESP + 0x64]
PUSH EAX
PUSH EBP
CALL 0x00033840
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x0027919a
JMP 0x002792ae
SUB ESP,0x8
PUSH 0x98
PUSH EBP
CALL 0x00032150
ADD ESP,0x10
FLD qword ptr [ESP + 0x38]
MOV EDX,dword ptr [ESP + 0x48]
FLD qword ptr [ESP + 0x40]
JMP 0x00278ceb
FSTP ST1
MOV dword ptr [ESP + 0x58],EDX
SUB ESP,0xc
FSTP qword ptr [ESP + 0x54]
PUSH dword ptr [ESP + 0x10]
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH EBP
CALL 0x00030b90
MOV dword ptr [ESP + 0x60],EAX
ADD ESP,0x20
TEST EAX,EAX
FLD qword ptr [ESP + 0x38]
MOV EDX,dword ptr [ESP + 0x58]
FLD qword ptr [ESP + 0x48]
JZ 0x00279a8c
FSTP qword ptr [ESP + 0x68]
SUB ESP,0xc
MOV dword ptr [ESP + 0x7c],EDX
FSTP qword ptr [ESP + 0x64]
PUSH ESI
CALL 0x000324c0
ADD ESP,0xc
MOV ECX,EAX
PUSH 0x1000
LEA EAX,[EBX + 0xffec4520]
PUSH EAX
LEA EAX,[ECX + 0x1f0]
MOV dword ptr [ESP + 0x44],ECX
PUSH EAX
CALL 0x00030b70
MOV dword ptr [ESP + 0x98],0x0
ADD ESP,0x10
PUSH dword ptr [ESP + 0x4]
LEA EAX,[ESP + 0x8c]
PUSH EAX
PUSH dword ptr [ESP + 0x48]
MOV ECX,dword ptr [ESP + 0x44]
PUSH ECX
MOV dword ptr [ESP + 0x58],ECX
CALL 0x00031890
MOV ECX,dword ptr [ESP + 0x58]
MOV dword ptr [ESP + 0x48],EAX
MOV dword ptr [ESP],ECX
CALL 0x00031450
ADD ESP,0x10
CMP dword ptr [ESP + 0x38],0x0
JZ 0x00279a9c
SUB ESP,0xc
PUSH dword ptr [ESP + 0x4c]
CALL 0x00032dd0
POP EAX
POP EDX
PUSH 0x8200
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
MOV EDX,dword ptr [ESP + 0x90]
LEA EAX,[EDX + 0x9a]
PUSH EAX
PUSH EBP
CALL 0x00032030
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH 0x10000
PUSH EBP
CALL 0x00032030
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP ECX
POP EAX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP ECX
POP EAX
PUSH 0x10000
PUSH EBP
CALL 0x00032030
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP ECX
POP EAX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP ECX
POP EAX
PUSH 0x40000000
PUSH EBP
CALL 0x00032030
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP ECX
POP EAX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP ECX
POP EAX
PUSH 0x400000
PUSH EBP
CALL 0x00032030
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
MOVZX EAX,word ptr [EBP + 0x1c]
PUSH EAX
PUSH EBP
CALL 0x00032150
POP EAX
MOVZX EAX,word ptr [EBP + 0x18]
POP EDX
PUSH EAX
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x300
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP ECX
POP EAX
PUSH 0x566a70
PUSH EBP
CALL 0x00032030
POP EAX
POP EDX
PUSH 0x65670000
PUSH EBP
CALL 0x00032030
POP ECX
POP EAX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP EAX
POP EDX
PUSH 0x1
PUSH EBP
CALL 0x00032030
POP ECX
POP EAX
PUSH 0x16170
PUSH EBP
CALL 0x00032030
POP EAX
POP EDX
PUSH 0x706c0000
PUSH EBP
CALL 0x00032030
POP ECX
POP EAX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP EAX
POP EDX
PUSH 0x300
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
MOVZX EAX,word ptr [EBP + 0x18]
PUSH EAX
PUSH EBP
CALL 0x00032150
POP EAX
MOVZX EAX,word ptr [EBP + 0x1c]
POP EDX
PUSH EAX
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH dword ptr [ESP + 0x58]
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH dword ptr [ESP + 0x6c]
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH dword ptr [ESP + 0x90]
PUSH EBP
CALL 0x00032030
POP EAX
POP EDX
PUSH 0x1
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH 0xb466f74
PUSH EBP
CALL 0x00032030
POP EAX
POP EDX
PUSH 0x6f202d20
PUSH EBP
CALL 0x00032030
POP ECX
POP EAX
PUSH 0x4a504547
PUSH EBP
CALL 0x00032030
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP ECX
POP EAX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP ECX
POP EAX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP ECX
POP EAX
PUSH 0x18ffff
PUSH EBP
CALL 0x00032030
ADD ESP,0xc
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [ESP + 0x90]
PUSH EBP
CALL 0x00030660
ADD ESP,0x10
FLD qword ptr [ESP + 0x58]
TEST byte ptr [ESP + 0x88],0x1
FLD qword ptr [ESP + 0x68]
MOV EDX,dword ptr [ESP + 0x70]
JZ 0x00279706
FSTP qword ptr [ESP + 0x48]
MOV dword ptr [ESP + 0x50],EDX
FSTP qword ptr [ESP + 0x40]
PUSH ECX
PUSH ECX
PUSH 0x0
PUSH EBP
CALL 0x00032b80
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x50]
FLD qword ptr [ESP + 0x40]
FLD qword ptr [ESP + 0x48]
FSTP qword ptr [ESP + 0x48]
SUB ESP,0xc
MOV dword ptr [ESP + 0x5c],EDX
FSTP qword ptr [ESP + 0x4c]
PUSH dword ptr [ESP + 0x44]
CALL 0x00033ac8
ADD ESP,0x10
FLD qword ptr [ESP + 0x40]
MOV EDX,dword ptr [ESP + 0x50]
FLD qword ptr [ESP + 0x48]
JMP 0x00278cac
SUB ESP,0x8
PUSH 0x0
PUSH EBP
CALL 0x00032030
POP ESI
POP EAX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP EAX
MOVZX EAX,word ptr [EBP + 0x24]
POP EDX
SUB EAX,0x1
MOVZX EAX,AX
PUSH EAX
PUSH EBP
CALL 0x00032150
MOV ECX,dword ptr [EBP + 0x24]
ADD ESP,0x10
TEST ECX,ECX
JLE 0x002798d0
XOR EAX,EAX
MOV dword ptr [ESP + 0xc],EDI
XOR ESI,ESI
MOV EDI,EAX
SUB ESP,0x8
MOVZX EAX,DI
PUSH EAX
PUSH EBP
CALL 0x00032150
MOV EAX,dword ptr [EBP + 0x28]
ADD ESP,0x10
FLD qword ptr [EAX + ESI*0x1 + 0x20]
XOR EAX,EAX
FUCOMI ST0,ST0
JP 0x002797d4
FLDZ
FUCOMIP ST0,ST1
JNC 0x002797d8
FLD dword ptr [EBX + 0xffec18a8]
FXCH
MOV EAX,0xffff
FUCOMI ST0,ST1
FSTP ST1
JNC 0x002797dc
FNSTCW word ptr [ESP + 0x7e]
FADD dword ptr [EBX + 0xffec12b8]
MOVZX EAX,word ptr [ESP + 0x7e]
OR AH,0xc
MOV word ptr [ESP + 0x7c],AX
FLDCW word ptr [ESP + 0x7c]
FISTP dword ptr [ESP + 0x74]
FLDCW word ptr [ESP + 0x7e]
MOV EAX,dword ptr [ESP + 0x74]
MOVZX EAX,AX
JMP 0x002797de
FSTP ST0
JMP 0x002797de
FSTP ST0
JMP 0x002797de
FSTP ST0
SUB ESP,0x8
PUSH EAX
PUSH EBP
CALL 0x00032150
MOV EAX,dword ptr [EBP + 0x28]
ADD ESP,0x10
FLD qword ptr [EAX + ESI*0x1 + 0x28]
XOR EAX,EAX
FUCOMI ST0,ST0
JP 0x0027983d
FLDZ
FUCOMIP ST0,ST1
JNC 0x00279841
FLD dword ptr [EBX + 0xffec18a8]
FXCH
MOV EAX,0xffff
FUCOMI ST0,ST1
FSTP ST1
JNC 0x00279845
FNSTCW word ptr [ESP + 0x7e]
FADD dword ptr [EBX + 0xffec12b8]
MOVZX EAX,word ptr [ESP + 0x7e]
OR AH,0xc
MOV word ptr [ESP + 0x7c],AX
FLDCW word ptr [ESP + 0x7c]
FISTP dword ptr [ESP + 0x74]
FLDCW word ptr [ESP + 0x7e]
MOV EAX,dword ptr [ESP + 0x74]
MOVZX EAX,AX
JMP 0x00279847
FSTP ST0
JMP 0x00279847
FSTP ST0
JMP 0x00279847
FSTP ST0
SUB ESP,0x8
PUSH EAX
PUSH EBP
CALL 0x00032150
MOV EAX,dword ptr [EBP + 0x28]
ADD ESP,0x10
FLD qword ptr [EAX + ESI*0x1 + 0x30]
XOR EAX,EAX
FUCOMI ST0,ST0
JP 0x002798a6
FLDZ
FUCOMIP ST0,ST1
JNC 0x002798aa
FLD dword ptr [EBX + 0xffec18a8]
FXCH
MOV EAX,0xffff
FUCOMI ST0,ST1
FSTP ST1
JNC 0x002798ae
FNSTCW word ptr [ESP + 0x7e]
FADD dword ptr [EBX + 0xffec12b8]
MOVZX EAX,word ptr [ESP + 0x7e]
OR AH,0xc
MOV word ptr [ESP + 0x7c],AX
FLDCW word ptr [ESP + 0x7c]
FISTP dword ptr [ESP + 0x74]
FLDCW word ptr [ESP + 0x7e]
MOV EAX,dword ptr [ESP + 0x74]
MOVZX EAX,AX
JMP 0x002798b0
FSTP ST0
JMP 0x002798b0
FSTP ST0
JMP 0x002798b0
FSTP ST0
SUB ESP,0x8
ADD EDI,0x1
ADD ESI,0x50
PUSH EAX
PUSH EBP
CALL 0x00032150
ADD ESP,0x10
CMP dword ptr [EBP + 0x24],EDI
JG 0x00279772
MOV EDI,dword ptr [ESP + 0xc]
SUB ESP,0x8
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP ECX
POP ESI
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH EDI
PUSH EBP
CALL 0x00032150
POP ECX
POP ESI
MOV ESI,dword ptr [ESP + 0x10]
PUSH ESI
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP ECX
POP EAX
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH EDI
PUSH EBP
CALL 0x00032150
POP ECX
POP EDI
PUSH ESI
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH dword ptr [ESP + 0x24]
PUSH EBP
CALL 0x00032150
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x18]
MOV ECX,dword ptr [EBP + 0x1c]
MOV dword ptr [ESP + 0x10],0x0
MOV dword ptr [ESP + 0x14],0x0
MOV dword ptr [ESP + 0xc],0x0
AND EAX,0x7fff
MOV dword ptr [ESP + 0x40],0x0
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBX + 0xffeee986]
TEST ECX,ECX
MOV dword ptr [ESP + 0x1c],EAX
JLE 0x002792c3
SUB ESP,0x8
PUSH dword ptr [ESP + 0xc]
PUSH 0x1
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [ESP + 0x20]
PUSH 0x0
PUSH EBP
CALL 0x00030e70
ADD ESP,0x20
TEST EAX,EAX
JZ 0x002792ae
MOV EDI,dword ptr [EBP + 0x18]
TEST EDI,EDI
JLE 0x00279a01
MOV EDX,dword ptr [EBP + 0x298]
MOV ECX,dword ptr [ESP + 0x30]
MOV ESI,dword ptr [EBP + 0x2a8]
SHL EDX,0x3
MOV dword ptr [ESP + 0x8],EDX
ADD EDI,ECX
MOV EDX,ECX
MOV ESI,ESI
LEA EDI,[EDI]
MOV ECX,dword ptr [ESI + 0x40]
TEST ECX,ECX
JZ 0x00279a50
MOV ECX,dword ptr [ESI + 0x44]
ADD EDX,0x1
FLD qword ptr [EAX + ECX*0x8]
FNSTCW word ptr [ESP + 0x7e]
ADD EAX,dword ptr [ESP + 0x8]
MOVZX ECX,word ptr [ESP + 0x7e]
OR CH,0xc
MOV word ptr [ESP + 0x7c],CX
FLDCW word ptr [ESP + 0x7c]
FISTP word ptr [ESP + 0x7a]
FLDCW word ptr [ESP + 0x7e]
MOVZX ECX,word ptr [ESP + 0x7a]
MOV byte ptr [EDX + -0x1],CL
CMP EDX,EDI
JNZ 0x002799c0
SUB ESP,0xc
MOV EAX,EBP
PUSH dword ptr [ESP + 0x40]
MOV ECX,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [ESP + 0x40]
CALL 0x00277f10
MOV ESI,dword ptr [EBP + 0x333c]
ADD dword ptr [ESP + 0x50],EAX
ADD ESP,0x10
TEST ESI,ESI
JZ 0x00279a64
ADD dword ptr [ESP + 0xc],0x1
ADD dword ptr [ESP + 0x10],0x1
MOV EAX,dword ptr [ESP + 0xc]
ADC dword ptr [ESP + 0x14],0x0
CMP dword ptr [EBP + 0x1c],EAX
JG 0x00279972
JMP 0x002792ae
MOV byte ptr [EDX],0x0
ADD EDX,0x1
ADD EAX,dword ptr [ESP + 0x8]
CMP EDX,EDI
JNZ 0x002799c0
JMP 0x00279a01
MOV EAX,dword ptr [EBP + 0x1c]
SUB ESP,0x8
XOR EDX,EDX
PUSH EDX
PUSH EAX
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [ESP + 0x34]
PUSH EBP
CALL 0x00033840
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x00279a28
JMP 0x002792ae
FSTP ST0
FSTP ST0
SUB ESP,0xc
PUSH EBP
CALL 0x000311d0
ADD ESP,0x10
XOR EAX,EAX
JMP 0x0027872e
LEA EAX,[EBX + 0xfff29bd8]
PUSH EAX
LEA EAX,[EBX + 0xfff29be7]
PUSH 0x6b8
PUSH EAX
LEA EAX,[EBX + 0xffecc4b8]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EBX + 0xfff29bd8]
PUSH EAX
LEA EAX,[EBX + 0xfff29be7]
PUSH 0x6b7
PUSH EAX
LEA EAX,[EBX + 0xffed9cf4]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EBX + 0xfff29bd8]
PUSH EAX
LEA EAX,[EBX + 0xfff29be7]
PUSH 0x6b6
PUSH EAX
LEA EAX,[EBX + 0xffec0d48]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EBX + 0xfff29bd8]
PUSH EAX
LEA EAX,[EBX + 0xfff29be7]
PUSH 0x6b5
PUSH EAX
LEA EAX,[EBX + 0xffec0d20]
PUSH EAX
CALL 0x000313d0
CALL 0x002decd0
LEA EAX,[EBX + 0xfff29bd8]
PUSH EAX
LEA EAX,[EBX + 0xfff29be7]
PUSH 0x6be
PUSH EAX
LEA EAX,[EBX + 0xffec29d4]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EBX + 0xfff29bd8]
PUSH EAX
LEA EAX,[EBX + 0xfff29be7]
PUSH 0x6bd
PUSH EAX
LEA EAX,[EBX + 0xffec1be4]
PUSH EAX
CALL 0x000313d0
FSTP ST0
MOV ESI,0xffffffff
JMP 0x00279150
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nint FUN_00278530(int *param_1,int *param_2,int param_3)\n\n{\n  double *pdVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar7;\n  int *piVar8;\n  int *piVar9;\n  short sVar10;\n  undefined2 uVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  void *__s;\n  undefined1 *__s_00;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  int iVar18;\n  uint uVar19;\n  int iVar20;\n  undefined4 extraout_ECX;\n  undefined1 *puVar21;\n  undefined4 extraout_ECX_00;\n  undefined1 *puVar22;\n  int iVar23;\n  undefined1 uVar24;\n  undefined4 *puVar25;\n  uint uVar26;\n  uint uVar27;\n  int in_GS_OFFSET;\n  bool bVar28;\n  byte bVar29;\n  undefined1 *local_a4;\n  uint local_a0;\n  undefined1 *local_9c;\n  int local_98;\n  size_t local_94;\n  undefined1 *local_90;\n  undefined1 *local_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  uint local_5c;\n  int local_58;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar29 = 0;\n  uStack_14 = 0x278539;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");\n  }\n  if (param_1[0xc7d] != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");\n  }\n  if (param_2 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");\n  }\n  if (param_2[0xcd1] != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");\n  }\n  if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6);\n  }\n  if (((uint)param_2[6] < 0x10000) && ((uint)param_2[7] < 0x10000)) {\n    if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }\n    if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }\n    iVar12 = OpenBlob(param_1,param_2,4,param_3);\n    if (iVar12 == 0) goto LAB_0027872e;\n    TransformImageColorspace(param_2,0x17,param_3);\n    uVar14 = param_2[6];\n    dVar2 = *(double *)(param_2 + 0x7c);\n    if ((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)) {\n      dVar3 = 0.0;\n      dVar2 = 0.0;\n    }\n    else if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }\n    iVar12 = *param_2;\n    if ((*param_1 == 0xc) || (iVar12 == 1)) {\n      local_94 = uVar14 << 2;\n      if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90 = (undefined1 *)0x40;\n      iVar12 = 1;\n      local_8c = (undefined1 *)0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }\n    if ((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)) {\n      ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);\n      piVar5 = (int *)param_1[3];\n      piVar9 = param_2;\n      while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }\n      goto LAB_00278720;\n    }\n    uVar26 = param_2[7];\n    puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1);\n    __s = (void *)AcquireQuantumMemory(uVar27,1);\n    __s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);\n    if ((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)) {\n      if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }\n      if (__s != (void *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }\n    if (puVar13 != (undefined4 *)0x0) {\n      RelinquishMagickMemory(puVar13);\n    }\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6);\n    piVar5 = (int *)param_1[3];\n    piVar9 = param_2;\n    while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n      piVar5 = (int *)piVar8[0xccf];\n      piVar9 = piVar5;\n      param_2 = piVar8;\n    }\n  }\n  else {\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6);\n    if (param_1[3] != 0) {\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }\n  }\nLAB_00278720:\n  CloseBlob(param_2);\n  iVar12 = 0;\nLAB_0027872e:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar12;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_002decd0();\n}\n\n" comment comment (function_definition "int FUN_00278530(int *param_1,int *param_2,int param_3)\n\n{\n  double *pdVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar7;\n  int *piVar8;\n  int *piVar9;\n  short sVar10;\n  undefined2 uVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  void *__s;\n  undefined1 *__s_00;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  int iVar18;\n  uint uVar19;\n  int iVar20;\n  undefined4 extraout_ECX;\n  undefined1 *puVar21;\n  undefined4 extraout_ECX_00;\n  undefined1 *puVar22;\n  int iVar23;\n  undefined1 uVar24;\n  undefined4 *puVar25;\n  uint uVar26;\n  uint uVar27;\n  int in_GS_OFFSET;\n  bool bVar28;\n  byte bVar29;\n  undefined1 *local_a4;\n  uint local_a0;\n  undefined1 *local_9c;\n  int local_98;\n  size_t local_94;\n  undefined1 *local_90;\n  undefined1 *local_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  uint local_5c;\n  int local_58;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar29 = 0;\n  uStack_14 = 0x278539;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");\n  }\n  if (param_1[0xc7d] != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");\n  }\n  if (param_2 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");\n  }\n  if (param_2[0xcd1] != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");\n  }\n  if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6);\n  }\n  if (((uint)param_2[6] < 0x10000) && ((uint)param_2[7] < 0x10000)) {\n    if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }\n    if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }\n    iVar12 = OpenBlob(param_1,param_2,4,param_3);\n    if (iVar12 == 0) goto LAB_0027872e;\n    TransformImageColorspace(param_2,0x17,param_3);\n    uVar14 = param_2[6];\n    dVar2 = *(double *)(param_2 + 0x7c);\n    if ((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)) {\n      dVar3 = 0.0;\n      dVar2 = 0.0;\n    }\n    else if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }\n    iVar12 = *param_2;\n    if ((*param_1 == 0xc) || (iVar12 == 1)) {\n      local_94 = uVar14 << 2;\n      if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90 = (undefined1 *)0x40;\n      iVar12 = 1;\n      local_8c = (undefined1 *)0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }\n    if ((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)) {\n      ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);\n      piVar5 = (int *)param_1[3];\n      piVar9 = param_2;\n      while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }\n      goto LAB_00278720;\n    }\n    uVar26 = param_2[7];\n    puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1);\n    __s = (void *)AcquireQuantumMemory(uVar27,1);\n    __s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);\n    if ((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)) {\n      if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }\n      if (__s != (void *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }\n    if (puVar13 != (undefined4 *)0x0) {\n      RelinquishMagickMemory(puVar13);\n    }\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6);\n    piVar5 = (int *)param_1[3];\n    piVar9 = param_2;\n    while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n      piVar5 = (int *)piVar8[0xccf];\n      piVar9 = piVar5;\n      param_2 = piVar8;\n    }\n  }\n  else {\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6);\n    if (param_1[3] != 0) {\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }\n  }\nLAB_00278720:\n  CloseBlob(param_2);\n  iVar12 = 0;\nLAB_0027872e:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar12;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_002decd0();\n}" primitive_type (function_declarator "FUN_00278530(int *param_1,int *param_2,int param_3)" identifier (parameter_list "(int *param_1,int *param_2,int param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  double *pdVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar7;\n  int *piVar8;\n  int *piVar9;\n  short sVar10;\n  undefined2 uVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  void *__s;\n  undefined1 *__s_00;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  int iVar18;\n  uint uVar19;\n  int iVar20;\n  undefined4 extraout_ECX;\n  undefined1 *puVar21;\n  undefined4 extraout_ECX_00;\n  undefined1 *puVar22;\n  int iVar23;\n  undefined1 uVar24;\n  undefined4 *puVar25;\n  uint uVar26;\n  uint uVar27;\n  int in_GS_OFFSET;\n  bool bVar28;\n  byte bVar29;\n  undefined1 *local_a4;\n  uint local_a0;\n  undefined1 *local_9c;\n  int local_98;\n  size_t local_94;\n  undefined1 *local_90;\n  undefined1 *local_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  uint local_5c;\n  int local_58;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar29 = 0;\n  uStack_14 = 0x278539;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");\n  }\n  if (param_1[0xc7d] != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");\n  }\n  if (param_2 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");\n  }\n  if (param_2[0xcd1] != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");\n  }\n  if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6);\n  }\n  if (((uint)param_2[6] < 0x10000) && ((uint)param_2[7] < 0x10000)) {\n    if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }\n    if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }\n    iVar12 = OpenBlob(param_1,param_2,4,param_3);\n    if (iVar12 == 0) goto LAB_0027872e;\n    TransformImageColorspace(param_2,0x17,param_3);\n    uVar14 = param_2[6];\n    dVar2 = *(double *)(param_2 + 0x7c);\n    if ((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)) {\n      dVar3 = 0.0;\n      dVar2 = 0.0;\n    }\n    else if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }\n    iVar12 = *param_2;\n    if ((*param_1 == 0xc) || (iVar12 == 1)) {\n      local_94 = uVar14 << 2;\n      if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90 = (undefined1 *)0x40;\n      iVar12 = 1;\n      local_8c = (undefined1 *)0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }\n    if ((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)) {\n      ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);\n      piVar5 = (int *)param_1[3];\n      piVar9 = param_2;\n      while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }\n      goto LAB_00278720;\n    }\n    uVar26 = param_2[7];\n    puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1);\n    __s = (void *)AcquireQuantumMemory(uVar27,1);\n    __s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);\n    if ((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)) {\n      if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }\n      if (__s != (void *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }\n    if (puVar13 != (undefined4 *)0x0) {\n      RelinquishMagickMemory(puVar13);\n    }\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6);\n    piVar5 = (int *)param_1[3];\n    piVar9 = param_2;\n    while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n      piVar5 = (int *)piVar8[0xccf];\n      piVar9 = piVar5;\n      param_2 = piVar8;\n    }\n  }\n  else {\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6);\n    if (param_1[3] != 0) {\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }\n  }\nLAB_00278720:\n  CloseBlob(param_2);\n  iVar12 = 0;\nLAB_0027872e:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar12;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_002decd0();\n}" { (declaration "double *pdVar1;" primitive_type (pointer_declarator "*pdVar1" * identifier) ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "short sVar10;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined2 uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "void *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "undefined1 *__s_00;" type_identifier (pointer_declarator "*__s_00" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined4 extraout_ECX_00;" type_identifier identifier ;) (declaration "undefined1 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "undefined1 uVar24;" type_identifier identifier ;) (declaration "undefined4 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar28;" primitive_type identifier ;) (declaration "byte bVar29;" type_identifier identifier ;) (declaration "undefined1 *local_a4;" type_identifier (pointer_declarator "*local_a4" * identifier) ;) (declaration "uint local_a0;" type_identifier identifier ;) (declaration "undefined1 *local_9c;" type_identifier (pointer_declarator "*local_9c" * identifier) ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "size_t local_94;" primitive_type identifier ;) (declaration "undefined1 *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "undefined1 *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "undefined4 local_88;" type_identifier identifier ;) (declaration "undefined4 local_84;" type_identifier identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x278539;" (assignment_expression "uStack_14 = 0x278539" 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 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");\n  }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");\n  }" { comment (expression_statement "__assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");" (call_expression "__assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage")" identifier (argument_list "("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage")" ( (string_literal ""image_info != (const ImageInfo *) NULL"" " string_content ") , (string_literal ""coders/pict.c"" " string_content ") , number_literal , (string_literal ""WritePICTImage"" " string_content ") ))) ;) })) (if_statement "if (param_1[0xc7d] != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");\n  }" if (parenthesized_expression "(param_1[0xc7d] != -0x54535255)" ( (binary_expression "param_1[0xc7d] != -0x54535255" (subscript_expression "param_1[0xc7d]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");\n  }" { comment (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage")" identifier (argument_list "("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage")" ( (string_literal ""image_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/pict.c"" " string_content ") , number_literal , (string_literal ""WritePICTImage"" " string_content ") ))) ;) })) (if_statement "if (param_2 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");\n  }" if (parenthesized_expression "(param_2 == (int *)0x0)" ( (binary_expression "param_2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");\n  }" { comment (expression_statement "__assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");" (call_expression "__assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage")" identifier (argument_list "("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""coders/pict.c"" " string_content ") , number_literal , (string_literal ""WritePICTImage"" " string_content ") ))) ;) })) (if_statement "if (param_2[0xcd1] != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");\n  }" if (parenthesized_expression "(param_2[0xcd1] != -0x54535255)" ( (binary_expression "param_2[0xcd1] != -0x54535255" (subscript_expression "param_2[0xcd1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");\n  }" { comment (expression_statement "__assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage")" identifier (argument_list "("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/pict.c"" " string_content ") , number_literal , (string_literal ""WritePICTImage"" " string_content ") ))) ;) })) (if_statement "if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6);\n  }" if (parenthesized_expression "(param_2[0xcca] != 0)" ( (binary_expression "param_2[0xcca] != 0" (subscript_expression "param_2[0xcca]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6);\n  }" { (expression_statement "LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6);" (call_expression "LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6)" identifier (argument_list "(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6)" ( number_literal , (string_literal ""coders/pict.c"" " string_content ") , (string_literal ""WritePICTImage"" " string_content ") , number_literal , (pointer_expression "&DAT_002f75ae" & identifier) , (binary_expression "param_2 + 0xc6" identifier + number_literal) ))) ;) })) (if_statement "if (((uint)param_2[6] < 0x10000) && ((uint)param_2[7] < 0x10000)) {\n    if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }\n    if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }\n    iVar12 = OpenBlob(param_1,param_2,4,param_3);\n    if (iVar12 == 0) goto LAB_0027872e;\n    TransformImageColorspace(param_2,0x17,param_3);\n    uVar14 = param_2[6];\n    dVar2 = *(double *)(param_2 + 0x7c);\n    if ((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)) {\n      dVar3 = 0.0;\n      dVar2 = 0.0;\n    }\n    else if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }\n    iVar12 = *param_2;\n    if ((*param_1 == 0xc) || (iVar12 == 1)) {\n      local_94 = uVar14 << 2;\n      if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90 = (undefined1 *)0x40;\n      iVar12 = 1;\n      local_8c = (undefined1 *)0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }\n    if ((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)) {\n      ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);\n      piVar5 = (int *)param_1[3];\n      piVar9 = param_2;\n      while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }\n      goto LAB_00278720;\n    }\n    uVar26 = param_2[7];\n    puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1);\n    __s = (void *)AcquireQuantumMemory(uVar27,1);\n    __s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);\n    if ((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)) {\n      if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }\n      if (__s != (void *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }\n    if (puVar13 != (undefined4 *)0x0) {\n      RelinquishMagickMemory(puVar13);\n    }\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6);\n    piVar5 = (int *)param_1[3];\n    piVar9 = param_2;\n    while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n      piVar5 = (int *)piVar8[0xccf];\n      piVar9 = piVar5;\n      param_2 = piVar8;\n    }\n  }\n  else {\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6);\n    if (param_1[3] != 0) {\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }\n  }" if (parenthesized_expression "(((uint)param_2[6] < 0x10000) && ((uint)param_2[7] < 0x10000))" ( (binary_expression "((uint)param_2[6] < 0x10000) && ((uint)param_2[7] < 0x10000)" (parenthesized_expression "((uint)param_2[6] < 0x10000)" ( (binary_expression "(uint)param_2[6] < 0x10000" (cast_expression "(uint)param_2[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[6]" identifier [ number_literal ])) < number_literal) )) && (parenthesized_expression "((uint)param_2[7] < 0x10000)" ( (binary_expression "(uint)param_2[7] < 0x10000" (cast_expression "(uint)param_2[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[7]" identifier [ number_literal ])) < number_literal) ))) )) (compound_statement "{\n    if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }\n    if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }\n    iVar12 = OpenBlob(param_1,param_2,4,param_3);\n    if (iVar12 == 0) goto LAB_0027872e;\n    TransformImageColorspace(param_2,0x17,param_3);\n    uVar14 = param_2[6];\n    dVar2 = *(double *)(param_2 + 0x7c);\n    if ((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)) {\n      dVar3 = 0.0;\n      dVar2 = 0.0;\n    }\n    else if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }\n    iVar12 = *param_2;\n    if ((*param_1 == 0xc) || (iVar12 == 1)) {\n      local_94 = uVar14 << 2;\n      if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90 = (undefined1 *)0x40;\n      iVar12 = 1;\n      local_8c = (undefined1 *)0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }\n    if ((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)) {\n      ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);\n      piVar5 = (int *)param_1[3];\n      piVar9 = param_2;\n      while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }\n      goto LAB_00278720;\n    }\n    uVar26 = param_2[7];\n    puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1);\n    __s = (void *)AcquireQuantumMemory(uVar27,1);\n    __s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);\n    if ((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)) {\n      if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }\n      if (__s != (void *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }\n    if (puVar13 != (undefined4 *)0x0) {\n      RelinquishMagickMemory(puVar13);\n    }\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6);\n    piVar5 = (int *)param_1[3];\n    piVar9 = param_2;\n    while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n      piVar5 = (int *)piVar8[0xccf];\n      piVar9 = piVar5;\n      param_2 = piVar8;\n    }\n  }" { (if_statement "if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }" { comment (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage")" identifier (argument_list "("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage")" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""coders/pict.c"" " string_content ") , number_literal , (string_literal ""WritePICTImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }" if (parenthesized_expression "(*(int *)(param_3 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_3 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_3 + 0x1c)" * (cast_expression "(int *)(param_3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c)" ( (binary_expression "param_3 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }" { comment (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage")" identifier (argument_list "("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage")" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/pict.c"" " string_content ") , number_literal , (string_literal ""WritePICTImage"" " string_content ") ))) ;) })) (expression_statement "iVar12 = OpenBlob(param_1,param_2,4,param_3);" (assignment_expression "iVar12 = OpenBlob(param_1,param_2,4,param_3)" identifier = (call_expression "OpenBlob(param_1,param_2,4,param_3)" identifier (argument_list "(param_1,param_2,4,param_3)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar12 == 0) goto LAB_0027872e;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0027872e;" goto statement_identifier ;)) (expression_statement "TransformImageColorspace(param_2,0x17,param_3);" (call_expression "TransformImageColorspace(param_2,0x17,param_3)" identifier (argument_list "(param_2,0x17,param_3)" ( identifier , number_literal , identifier ))) ;) (expression_statement "uVar14 = param_2[6];" (assignment_expression "uVar14 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "dVar2 = *(double *)(param_2 + 0x7c);" (assignment_expression "dVar2 = *(double *)(param_2 + 0x7c)" identifier = (pointer_expression "*(double *)(param_2 + 0x7c)" * (cast_expression "(double *)(param_2 + 0x7c)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x7c)" ( (binary_expression "param_2 + 0x7c" identifier + number_literal) ))))) ;) (if_statement "if ((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)) {\n      dVar3 = 0.0;\n      dVar2 = 0.0;\n    }\n    else if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }" if (parenthesized_expression "((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0))" ( (binary_expression "(dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)" (parenthesized_expression "(dVar2 <= DAT_002df2d0)" ( (binary_expression "dVar2 <= DAT_002df2d0" identifier <= identifier) )) || (parenthesized_expression "(dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)" ( (comma_expression "dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0" (assignment_expression "dVar3 = *(double *)(param_2 + 0x7e)" identifier = (pointer_expression "*(double *)(param_2 + 0x7e)" * (cast_expression "(double *)(param_2 + 0x7e)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x7e)" ( (binary_expression "param_2 + 0x7e" identifier + number_literal) ))))) , (binary_expression "dVar3 <= DAT_002df2d0" identifier <= identifier)) ))) )) (compound_statement "{\n      dVar3 = 0.0;\n      dVar2 = 0.0;\n    }" { (expression_statement "dVar3 = 0.0;" (assignment_expression "dVar3 = 0.0" identifier = number_literal) ;) (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }" else (if_statement "if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }" if (parenthesized_expression "(param_2[0x77] == 2)" ( (binary_expression "param_2[0x77] == 2" (subscript_expression "param_2[0x77]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }" { (expression_statement "dVar2 = dVar2 * _DAT_002f84b0;" (assignment_expression "dVar2 = dVar2 * _DAT_002f84b0" identifier = (binary_expression "dVar2 * _DAT_002f84b0" identifier * identifier)) ;) (expression_statement "dVar3 = _DAT_002f84b0 * dVar3;" (assignment_expression "dVar3 = _DAT_002f84b0 * dVar3" identifier = (binary_expression "_DAT_002f84b0 * dVar3" identifier * identifier)) ;) })))) (expression_statement "iVar12 = *param_2;" (assignment_expression "iVar12 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if ((*param_1 == 0xc) || (iVar12 == 1)) {\n      local_94 = uVar14 << 2;\n      if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90 = (undefined1 *)0x40;\n      iVar12 = 1;\n      local_8c = (undefined1 *)0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }" if (parenthesized_expression "((*param_1 == 0xc) || (iVar12 == 1))" ( (binary_expression "(*param_1 == 0xc) || (iVar12 == 1)" (parenthesized_expression "(*param_1 == 0xc)" ( (binary_expression "*param_1 == 0xc" (pointer_expression "*param_1" * identifier) == number_literal) )) || (parenthesized_expression "(iVar12 == 1)" ( (binary_expression "iVar12 == 1" identifier == number_literal) ))) )) (compound_statement "{\n      local_94 = uVar14 << 2;\n      if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90 = (undefined1 *)0x40;\n      iVar12 = 1;\n      local_8c = (undefined1 *)0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }" { (expression_statement "local_94 = uVar14 << 2;" (assignment_expression "local_94 = uVar14 << 2" identifier = (binary_expression "uVar14 << 2" identifier << number_literal)) ;) (if_statement "if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }" if (parenthesized_expression "(param_2[0xa5] == 0)" ( (binary_expression "param_2[0xa5] == 0" (subscript_expression "param_2[0xa5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }" { (expression_statement "local_9c._0_2_ = 3;" (assignment_expression "local_9c._0_2_ = 3" (field_expression "local_9c._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_a0 = uVar14 * 3;" (assignment_expression "local_a0 = uVar14 * 3" identifier = (binary_expression "uVar14 * 3" identifier * number_literal)) ;) }) (else_clause "else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }" else (compound_statement "{\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }" { (expression_statement "local_9c._0_2_ = 4;" (assignment_expression "local_9c._0_2_ = 4" (field_expression "local_9c._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_a0 = local_94;" (assignment_expression "local_a0 = local_94" identifier = identifier) ;) }))) (expression_statement "local_90 = (undefined1 *)0x40;" (assignment_expression "local_90 = (undefined1 *)0x40" identifier = (cast_expression "(undefined1 *)0x40" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (expression_statement "local_8c = (undefined1 *)0x20;" (assignment_expression "local_8c = (undefined1 *)0x20" identifier = (cast_expression "(undefined1 *)0x20" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_88 = 0x10;" (assignment_expression "local_88 = 0x10" identifier = number_literal) ;) (expression_statement "local_84 = 4;" (assignment_expression "local_84 = 4" identifier = number_literal) ;) }) (else_clause "else {\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }" else (compound_statement "{\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }" { (expression_statement "local_90 = (undefined1 *)0x0;" (assignment_expression "local_90 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_8c = (undefined1 *)0x8;" (assignment_expression "local_8c = (undefined1 *)0x8" identifier = (cast_expression "(undefined1 *)0x8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "local_9c._0_2_ = 1;" (assignment_expression "local_9c._0_2_ = 1" (field_expression "local_9c._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_a0 = uVar14;" (assignment_expression "local_a0 = uVar14" identifier = identifier) ;) (expression_statement "local_94 = uVar14;" (assignment_expression "local_94 = uVar14" identifier = identifier) ;) }))) (if_statement "if ((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)) {\n      ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);\n      piVar5 = (int *)param_1[3];\n      piVar9 = param_2;\n      while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }\n      goto LAB_00278720;\n    }" if (parenthesized_expression "((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27))" ( (binary_expression "(0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)" (parenthesized_expression "(0x7ffe < local_a0 - 1)" ( (binary_expression "0x7ffe < local_a0 - 1" number_literal < (binary_expression "local_a0 - 1" identifier - number_literal)) )) || (parenthesized_expression "(uVar27 = local_94 + 0x100, 0x7ffe < uVar27)" ( (comma_expression "uVar27 = local_94 + 0x100, 0x7ffe < uVar27" (assignment_expression "uVar27 = local_94 + 0x100" identifier = (binary_expression "local_94 + 0x100" identifier + number_literal)) , (binary_expression "0x7ffe < uVar27" number_literal < identifier)) ))) )) (compound_statement "{\n      ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);\n      piVar5 = (int *)param_1[3];\n      piVar9 = param_2;\n      while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }\n      goto LAB_00278720;\n    }" { (expression_statement "ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);" (call_expression "ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6)" identifier (argument_list "(param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6)" ( identifier , (string_literal ""coders/pict.c"" " string_content ") , (string_literal ""WritePICTImage"" " string_content ") , number_literal , number_literal , (string_literal ""WidthOrHeightExceedsLimit"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_2 + 0xc6" identifier + number_literal) ))) ;) (expression_statement "piVar5 = (int *)param_1[3];" (assignment_expression "piVar5 = (int *)param_1[3]" identifier = (cast_expression "(int *)param_1[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "piVar9 = param_2;" (assignment_expression "piVar9 = param_2" identifier = identifier) ;) (while_statement "while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }" while (parenthesized_expression "(piVar8 = piVar9, piVar5 != (int *)0x0)" ( (comma_expression "piVar8 = piVar9, piVar5 != (int *)0x0" (assignment_expression "piVar8 = piVar9" identifier = identifier) , (binary_expression "piVar5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }" { (expression_statement "piVar5 = (int *)piVar8[0xccf];" (assignment_expression "piVar5 = (int *)piVar8[0xccf]" identifier = (cast_expression "(int *)piVar8[0xccf]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0xccf]" identifier [ number_literal ]))) ;) (expression_statement "piVar9 = piVar5;" (assignment_expression "piVar9 = piVar5" identifier = identifier) ;) (expression_statement "param_2 = piVar8;" (assignment_expression "param_2 = piVar8" identifier = identifier) ;) })) (goto_statement "goto LAB_00278720;" goto statement_identifier ;) })) (expression_statement "uVar26 = param_2[7];" (assignment_expression "uVar26 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (expression_statement "puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1);" (assignment_expression "puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1)" identifier = (cast_expression "(undefined4 *)AcquireQuantumMemory(0x200,1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(0x200,1)" identifier (argument_list "(0x200,1)" ( number_literal , number_literal ))))) ;) (expression_statement "__s = (void *)AcquireQuantumMemory(uVar27,1);" (assignment_expression "__s = (void *)AcquireQuantumMemory(uVar27,1)" identifier = (cast_expression "(void *)AcquireQuantumMemory(uVar27,1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(uVar27,1)" identifier (argument_list "(uVar27,1)" ( identifier , number_literal ))))) ;) (expression_statement "__s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);" (assignment_expression "__s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1)" identifier = (cast_expression "(undefined1 *)AcquireQuantumMemory(local_94,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(local_94,1)" identifier (argument_list "(local_94,1)" ( identifier , number_literal ))))) ;) (if_statement "if ((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)) {\n      if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }\n      if (__s != (void *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }" if (parenthesized_expression "((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0))" ( (binary_expression "(puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)" (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(__s == (void *)0x0)" ( (binary_expression "__s == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }\n      if (__s != (void *)0x0) goto LAB_0027924d;\n    }" { (if_statement "if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }" if (parenthesized_expression "(__s_00 != (undefined1 *)0x0)" ( (binary_expression "__s_00 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        RelinquishMagickMemory(__s_00);\n      }" { (expression_statement "RelinquishMagickMemory(__s_00);" (call_expression "RelinquishMagickMemory(__s_00)" identifier (argument_list "(__s_00)" ( identifier ))) ;) })) (if_statement "if (__s != (void *)0x0) goto LAB_0027924d;" if (parenthesized_expression "(__s != (void *)0x0)" ( (binary_expression "__s != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0027924d;" goto statement_identifier ;)) }) (else_clause "else {\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }" else (compound_statement "{\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }" { (if_statement "if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }" if (parenthesized_expression "(__s_00 != (undefined1 *)0x0)" ( (binary_expression "__s_00 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }" { (expression_statement "memset(__s_00,0,local_94);" (call_expression "memset(__s_00,0,local_94)" identifier (argument_list "(__s_00,0,local_94)" ( identifier , number_literal , identifier ))) ;) (expression_statement "memset(__s,0,uVar27);" (call_expression "memset(__s,0,uVar27)" identifier (argument_list "(__s,0,uVar27)" ( identifier , number_literal , identifier ))) ;) (expression_statement "puVar25 = puVar13;" (assignment_expression "puVar25 = puVar13" identifier = identifier) ;) (for_statement "for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }" for ( (assignment_expression "iVar20 = 0x80" identifier = number_literal) ; (binary_expression "iVar20 != 0" identifier != number_literal) ; (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ) (compound_statement "{\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }" { (expression_statement "*puVar25 = 0;" (assignment_expression "*puVar25 = 0" (pointer_expression "*puVar25" * identifier) = number_literal) ;) (expression_statement "puVar25 = puVar25 + (uint)bVar29 * -2 + 1;" (assignment_expression "puVar25 = puVar25 + (uint)bVar29 * -2 + 1" identifier = (binary_expression "puVar25 + (uint)bVar29 * -2 + 1" (binary_expression "puVar25 + (uint)bVar29 * -2" identifier + (binary_expression "(uint)bVar29 * -2" (cast_expression "(uint)bVar29" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "WriteBlob(param_2,0x200,puVar13);" (call_expression "WriteBlob(param_2,0x200,puVar13)" identifier (argument_list "(param_2,0x200,puVar13)" ( identifier , number_literal , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "uVar26 = uVar26 & 0xffff;" (assignment_expression "uVar26 = uVar26 & 0xffff" identifier = (binary_expression "uVar26 & 0xffff" identifier & number_literal)) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" identifier (argument_list "(param_2,uVar26)" ( identifier , identifier ))) ;) (expression_statement "uVar14 = uVar14 & 0xffff;" (assignment_expression "uVar14 = uVar14 & 0xffff" identifier = (binary_expression "uVar14 & 0xffff" identifier & number_literal)) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" identifier (argument_list "(param_2,uVar14)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0x11);" (call_expression "WriteBlobMSBShort(param_2,0x11)" identifier (argument_list "(param_2,0x11)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0x2ff);" (call_expression "WriteBlobMSBShort(param_2,0x2ff)" identifier (argument_list "(param_2,0x2ff)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0xc00);" (call_expression "WriteBlobMSBShort(param_2,0xc00)" identifier (argument_list "(param_2,0xc00)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0xfffe0000);" (call_expression "WriteBlobMSBLong(param_2,0xfffe0000)" identifier (argument_list "(param_2,0xfffe0000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);" (call_expression "WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU)" identifier (argument_list "(param_2,(int)ROUND(dVar2) & 0xffffU)" ( identifier , (binary_expression "(int)ROUND(dVar2) & 0xffffU" (cast_expression "(int)ROUND(dVar2)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier )))) & number_literal) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);" (call_expression "WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU)" identifier (argument_list "(param_2,(int)ROUND(dVar3) & 0xffffU)" ( identifier , (binary_expression "(int)ROUND(dVar3) & 0xffffU" (cast_expression "(int)ROUND(dVar3)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier )))) & number_literal) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" identifier (argument_list "(param_2,uVar26)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" identifier (argument_list "(param_2,uVar14)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "iVar20 = GetImageProfile(param_2,&DAT_002ec69d);" (assignment_expression "iVar20 = GetImageProfile(param_2,&DAT_002ec69d)" identifier = (call_expression "GetImageProfile(param_2,&DAT_002ec69d)" identifier (argument_list "(param_2,&DAT_002ec69d)" ( identifier , (pointer_expression "&DAT_002ec69d" & identifier) )))) ;) (if_statement "if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }" { (expression_statement "WriteBlobMSBShort(param_2,0xa1);" (call_expression "WriteBlobMSBShort(param_2,0xa1)" identifier (argument_list "(param_2,0xa1)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0x1f2);" (call_expression "WriteBlobMSBShort(param_2,0x1f2)" identifier (argument_list "(param_2,0x1f2)" ( identifier , number_literal ))) ;) (expression_statement "sVar10 = GetStringInfoLength(iVar20);" (assignment_expression "sVar10 = GetStringInfoLength(iVar20)" identifier = (call_expression "GetStringInfoLength(iVar20)" identifier (argument_list "(iVar20)" ( identifier )))) ;) (expression_statement "WriteBlobMSBShort(param_2,sVar10 + 4);" (call_expression "WriteBlobMSBShort(param_2,sVar10 + 4)" identifier (argument_list "(param_2,sVar10 + 4)" ( identifier , (binary_expression "sVar10 + 4" identifier + number_literal) ))) ;) (expression_statement "WriteBlobString(param_2,&DAT_002e24fa);" (call_expression "WriteBlobString(param_2,&DAT_002e24fa)" identifier (argument_list "(param_2,&DAT_002e24fa)" ( identifier , (pointer_expression "&DAT_002e24fa" & identifier) ))) ;) (expression_statement "uVar15 = GetStringInfoDatum(iVar20);" (assignment_expression "uVar15 = GetStringInfoDatum(iVar20)" identifier = (call_expression "GetStringInfoDatum(iVar20)" identifier (argument_list "(iVar20)" ( identifier )))) ;) (expression_statement "uVar16 = GetStringInfoLength(iVar20);" (assignment_expression "uVar16 = GetStringInfoLength(iVar20)" identifier = (call_expression "GetStringInfoLength(iVar20)" identifier (argument_list "(iVar20)" ( identifier )))) ;) (expression_statement "WriteBlob(param_2,uVar16,uVar15);" (call_expression "WriteBlob(param_2,uVar16,uVar15)" identifier (argument_list "(param_2,uVar16,uVar15)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "iVar20 = GetImageProfile(param_2,&DAT_002e832a);" (assignment_expression "iVar20 = GetImageProfile(param_2,&DAT_002e832a)" identifier = (call_expression "GetImageProfile(param_2,&DAT_002e832a)" identifier (argument_list "(param_2,&DAT_002e832a)" ( identifier , (pointer_expression "&DAT_002e832a" & identifier) )))) ;) (if_statement "if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }" { (expression_statement "WriteBlobMSBShort(param_2,0xa1);" (call_expression "WriteBlobMSBShort(param_2,0xa1)" identifier (argument_list "(param_2,0xa1)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0xe0);" (call_expression "WriteBlobMSBShort(param_2,0xe0)" identifier (argument_list "(param_2,0xe0)" ( identifier , number_literal ))) ;) (expression_statement "sVar10 = GetStringInfoLength(iVar20);" (assignment_expression "sVar10 = GetStringInfoLength(iVar20)" identifier = (call_expression "GetStringInfoLength(iVar20)" identifier (argument_list "(iVar20)" ( identifier )))) ;) (expression_statement "WriteBlobMSBShort(param_2,sVar10 + 4);" (call_expression "WriteBlobMSBShort(param_2,sVar10 + 4)" identifier (argument_list "(param_2,sVar10 + 4)" ( identifier , (binary_expression "sVar10 + 4" identifier + number_literal) ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "uVar15 = GetStringInfoDatum(iVar20);" (assignment_expression "uVar15 = GetStringInfoDatum(iVar20)" identifier = (call_expression "GetStringInfoDatum(iVar20)" identifier (argument_list "(iVar20)" ( identifier )))) ;) (expression_statement "uVar16 = GetStringInfoLength(iVar20);" (assignment_expression "uVar16 = GetStringInfoLength(iVar20)" identifier = (call_expression "GetStringInfoLength(iVar20)" identifier (argument_list "(iVar20)" ( identifier )))) ;) (expression_statement "WriteBlob(param_2,uVar16,uVar15);" (call_expression "WriteBlob(param_2,uVar16,uVar15)" identifier (argument_list "(param_2,uVar16,uVar15)" ( identifier , identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0xa1);" (call_expression "WriteBlobMSBShort(param_2,0xa1)" identifier (argument_list "(param_2,0xa1)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0xe0);" (call_expression "WriteBlobMSBShort(param_2,0xe0)" identifier (argument_list "(param_2,0xe0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,4);" (call_expression "WriteBlobMSBShort(param_2,4)" identifier (argument_list "(param_2,4)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,2);" (call_expression "WriteBlobMSBLong(param_2,2)" identifier (argument_list "(param_2,2)" ( identifier , number_literal ))) ;) })) (expression_statement "WriteBlobMSBShort(param_2,1);" (call_expression "WriteBlobMSBShort(param_2,1)" identifier (argument_list "(param_2,1)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,10);" (call_expression "WriteBlobMSBShort(param_2,10)" identifier (argument_list "(param_2,10)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" identifier (argument_list "(param_2,uVar26)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" identifier (argument_list "(param_2,uVar14)" ( identifier , identifier ))) ;) (if_statement "if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }" if (parenthesized_expression "(*param_1 == 0xc)" ( (binary_expression "*param_1 == 0xc" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }" { (expression_statement "iVar20 = CloneImage(param_2,0,0,1,param_3);" (assignment_expression "iVar20 = CloneImage(param_2,0,0,1,param_3)" identifier = (call_expression "CloneImage(param_2,0,0,1,param_3)" identifier (argument_list "(param_2,0,0,1,param_3)" ( identifier , number_literal , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n            CloseBlob(param_2);\n          }" { (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) }) (else_clause "else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }" else (compound_statement "{\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }" { (expression_statement "iVar17 = CloneImageInfo(param_1);" (assignment_expression "iVar17 = CloneImageInfo(param_1)" identifier = (call_expression "CloneImageInfo(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);" (call_expression "CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000)" identifier (argument_list "(iVar17 + 0x1f0,&DAT_002e2520,0x1000)" ( (binary_expression "iVar17 + 0x1f0" identifier + number_literal) , (pointer_expression "&DAT_002e2520" & identifier) , number_literal ))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);" (assignment_expression "iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3)" identifier = (call_expression "ImageToBlob(iVar17,iVar20,&local_24,param_3)" identifier (argument_list "(iVar17,iVar20,&local_24,param_3)" ( identifier , identifier , (pointer_expression "&local_24" & identifier) , identifier )))) ;) (expression_statement "DestroyImageInfo(iVar17);" (call_expression "DestroyImageInfo(iVar17)" identifier (argument_list "(iVar17)" ( identifier ))) ;) (if_statement "if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }" { (expression_statement "DestroyImage(iVar20);" (call_expression "DestroyImage(iVar20)" identifier (argument_list "(iVar20)" ( identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0x8200);" (call_expression "WriteBlobMSBShort(param_2,0x8200)" identifier (argument_list "(param_2,0x8200)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,local_24 + 0x9a);" (call_expression "WriteBlobMSBLong(param_2,local_24 + 0x9a)" identifier (argument_list "(param_2,local_24 + 0x9a)" ( identifier , (binary_expression "local_24 + 0x9a" identifier + number_literal) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0x10000);" (call_expression "WriteBlobMSBLong(param_2,0x10000)" identifier (argument_list "(param_2,0x10000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0x10000);" (call_expression "WriteBlobMSBLong(param_2,0x10000)" identifier (argument_list "(param_2,0x10000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0x40000000);" (call_expression "WriteBlobMSBLong(param_2,0x40000000)" identifier (argument_list "(param_2,0x40000000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0x400000);" (call_expression "WriteBlobMSBLong(param_2,0x400000)" identifier (argument_list "(param_2,0x400000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(short)param_2[7]);" (call_expression "WriteBlobMSBShort(param_2,(short)param_2[7])" identifier (argument_list "(param_2,(short)param_2[7])" ( identifier , (cast_expression "(short)param_2[7]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "param_2[7]" identifier [ number_literal ])) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(short)param_2[6]);" (call_expression "WriteBlobMSBShort(param_2,(short)param_2[6])" identifier (argument_list "(param_2,(short)param_2[6])" ( identifier , (cast_expression "(short)param_2[6]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "param_2[6]" identifier [ number_literal ])) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0x300);" (call_expression "WriteBlobMSBShort(param_2,0x300)" identifier (argument_list "(param_2,0x300)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0x566a70);" (call_expression "WriteBlobMSBLong(param_2,0x566a70)" identifier (argument_list "(param_2,0x566a70)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0x65670000);" (call_expression "WriteBlobMSBLong(param_2,0x65670000)" identifier (argument_list "(param_2,0x65670000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,1);" (call_expression "WriteBlobMSBLong(param_2,1)" identifier (argument_list "(param_2,1)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0x16170);" (call_expression "WriteBlobMSBLong(param_2,0x16170)" identifier (argument_list "(param_2,0x16170)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0x706c0000);" (call_expression "WriteBlobMSBLong(param_2,0x706c0000)" identifier (argument_list "(param_2,0x706c0000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0x300);" (call_expression "WriteBlobMSBShort(param_2,0x300)" identifier (argument_list "(param_2,0x300)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(short)param_2[6]);" (call_expression "WriteBlobMSBShort(param_2,(short)param_2[6])" identifier (argument_list "(param_2,(short)param_2[6])" ( identifier , (cast_expression "(short)param_2[6]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "param_2[6]" identifier [ number_literal ])) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(short)param_2[7]);" (call_expression "WriteBlobMSBShort(param_2,(short)param_2[7])" identifier (argument_list "(param_2,(short)param_2[7])" ( identifier , (cast_expression "(short)param_2[7]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "param_2[7]" identifier [ number_literal ])) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);" (call_expression "WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU)" identifier (argument_list "(param_2,(int)ROUND(dVar2) & 0xffffU)" ( identifier , (binary_expression "(int)ROUND(dVar2) & 0xffffU" (cast_expression "(int)ROUND(dVar2)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier )))) & number_literal) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);" (call_expression "WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU)" identifier (argument_list "(param_2,(int)ROUND(dVar3) & 0xffffU)" ( identifier , (binary_expression "(int)ROUND(dVar3) & 0xffffU" (cast_expression "(int)ROUND(dVar3)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier )))) & number_literal) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,local_24);" (call_expression "WriteBlobMSBLong(param_2,local_24)" identifier (argument_list "(param_2,local_24)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,1);" (call_expression "WriteBlobMSBShort(param_2,1)" identifier (argument_list "(param_2,1)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0xb466f74);" (call_expression "WriteBlobMSBLong(param_2,0xb466f74)" identifier (argument_list "(param_2,0xb466f74)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0x6f202d20);" (call_expression "WriteBlobMSBLong(param_2,0x6f202d20)" identifier (argument_list "(param_2,0x6f202d20)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0x4a504547);" (call_expression "WriteBlobMSBLong(param_2,0x4a504547)" identifier (argument_list "(param_2,0x4a504547)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,&DAT_0018ffff);" (call_expression "WriteBlobMSBLong(param_2,&DAT_0018ffff)" identifier (argument_list "(param_2,&DAT_0018ffff)" ( identifier , (pointer_expression "&DAT_0018ffff" & identifier) ))) ;) (expression_statement "WriteBlob(param_2,local_24,iVar18);" (call_expression "WriteBlob(param_2,local_24,iVar18)" identifier (argument_list "(param_2,local_24,iVar18)" ( identifier , identifier , identifier ))) ;) (if_statement "if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }" if (parenthesized_expression "((local_24 & 1) != 0)" ( (binary_expression "(local_24 & 1) != 0" (parenthesized_expression "(local_24 & 1)" ( (binary_expression "local_24 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }" { (expression_statement "WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);" (call_expression "WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00)" identifier (argument_list "(param_2,0,extraout_ECX_00,extraout_ECX_00)" ( identifier , number_literal , identifier , identifier ))) ;) })) (expression_statement "RelinquishMagickMemory(iVar18);" (call_expression "RelinquishMagickMemory(iVar18)" identifier (argument_list "(iVar18)" ( identifier ))) ;) (goto_statement "goto LAB_00278cac;" goto statement_identifier ;) })) }))) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0027872e;" goto statement_identifier ;) })) (labeled_statement "LAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }" statement_identifier : (if_statement "if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }" if (parenthesized_expression "(iVar12 == 2)" ( (binary_expression "iVar12 == 2" identifier == number_literal) )) (compound_statement "{\n          WriteBlobMSBShort(param_2,0x98);\n        }" { (expression_statement "WriteBlobMSBShort(param_2,0x98);" (call_expression "WriteBlobMSBShort(param_2,0x98)" identifier (argument_list "(param_2,0x98)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }" else (compound_statement "{\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }" { (expression_statement "WriteBlobMSBShort(param_2,0x9a);" (call_expression "WriteBlobMSBShort(param_2,0x9a)" identifier (argument_list "(param_2,0x9a)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0xff);" (call_expression "WriteBlobMSBLong(param_2,0xff)" identifier (argument_list "(param_2,0xff)" ( identifier , number_literal ))) ;) })))) (expression_statement "WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);" (call_expression "WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000)" identifier (argument_list "(param_2,(ushort)local_94 | 0x8000)" ( identifier , (binary_expression "(ushort)local_94 | 0x8000" (cast_expression "(ushort)local_94" ( (type_descriptor "ushort" type_identifier) ) identifier) | number_literal) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" identifier (argument_list "(param_2,uVar26)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" identifier (argument_list "(param_2,uVar14)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,local_84);" (call_expression "WriteBlobMSBShort(param_2,local_84)" identifier (argument_list "(param_2,local_84)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "dVar4 = (double)DAT_002df2b8;" (assignment_expression "dVar4 = (double)DAT_002df2b8" identifier = (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);" (call_expression "WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff)" identifier (argument_list "(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff)" ( identifier , (binary_expression "(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff" (cast_expression "(int)ROUND((float)dVar2 + DAT_002df2b8)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND((float)dVar2 + DAT_002df2b8)" identifier (argument_list "((float)dVar2 + DAT_002df2b8)" ( (binary_expression "(float)dVar2 + DAT_002df2b8" (cast_expression "(float)dVar2" ( (type_descriptor "float" primitive_type) ) identifier) + identifier) )))) & number_literal) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);" (call_expression "WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff)" identifier (argument_list "(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff)" ( identifier , (binary_expression "(int)ROUND(dVar3 + dVar4) & 0xffff" (cast_expression "(int)ROUND(dVar3 + dVar4)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3 + dVar4)" identifier (argument_list "(dVar3 + dVar4)" ( (binary_expression "dVar3 + dVar4" identifier + identifier) )))) & number_literal) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,local_88);" (call_expression "WriteBlobMSBShort(param_2,local_88)" identifier (argument_list "(param_2,local_88)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,local_8c);" (call_expression "WriteBlobMSBShort(param_2,local_8c)" identifier (argument_list "(param_2,local_8c)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,local_9c._0_2_);" (call_expression "WriteBlobMSBShort(param_2,local_9c._0_2_)" identifier (argument_list "(param_2,local_9c._0_2_)" ( identifier , (field_expression "local_9c._0_2_" identifier . field_identifier) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,8);" (call_expression "WriteBlobMSBShort(param_2,8)" identifier (argument_list "(param_2,8)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (if_statement "if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }" if (parenthesized_expression "(iVar12 == 2)" ( (binary_expression "iVar12 == 2" identifier == number_literal) )) (compound_statement "{\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }" { (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(short)param_2[9] + -1);" (call_expression "WriteBlobMSBShort(param_2,(short)param_2[9] + -1)" identifier (argument_list "(param_2,(short)param_2[9] + -1)" ( identifier , (binary_expression "(short)param_2[9] + -1" (cast_expression "(short)param_2[9]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "param_2[9]" identifier [ number_literal ])) + number_literal) ))) ;) (if_statement "if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }" if (parenthesized_expression "(0 < param_2[9])" ( (binary_expression "0 < param_2[9]" number_literal < (subscript_expression "param_2[9]" identifier [ number_literal ])) )) (compound_statement "{\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar27 = 0;" (assignment_expression "uVar27 = 0" identifier = number_literal) ;) (do_statement "do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);" do (compound_statement "{\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            }" { (expression_statement "WriteBlobMSBShort(param_2,uVar27 & 0xffff);" (call_expression "WriteBlobMSBShort(param_2,uVar27 & 0xffff)" identifier (argument_list "(param_2,uVar27 & 0xffff)" ( identifier , (binary_expression "uVar27 & 0xffff" identifier & number_literal) ))) ;) (expression_statement "dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);" (assignment_expression "dVar2 = *(double *)(param_2[10] + 0x20 + iVar12)" identifier = (pointer_expression "*(double *)(param_2[10] + 0x20 + iVar12)" * (cast_expression "(double *)(param_2[10] + 0x20 + iVar12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[10] + 0x20 + iVar12)" ( (binary_expression "param_2[10] + 0x20 + iVar12" (binary_expression "param_2[10] + 0x20" (subscript_expression "param_2[10]" identifier [ number_literal ]) + number_literal) + identifier) ))))) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (if_statement "if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }" if (parenthesized_expression "((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8))" ( (binary_expression "(0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)" (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) && (parenthesized_expression "(uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)" ( (comma_expression "uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8" (assignment_expression "uVar19 = 0xffff" identifier = number_literal) , (binary_expression "dVar2 < (double)DAT_002df8a8" identifier < (cast_expression "(double)DAT_002df8a8" ( (type_descriptor "double" primitive_type) ) identifier))) ))) )) (compound_statement "{\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }" { (expression_statement "uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;" (assignment_expression "uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff" identifier = (binary_expression "(int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff" (cast_expression "(int)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" identifier (argument_list "(dVar2 + (double)DAT_002df2b8)" ( (binary_expression "dVar2 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))) & number_literal)) ;) })) (expression_statement "WriteBlobMSBShort(param_2,uVar19);" (call_expression "WriteBlobMSBShort(param_2,uVar19)" identifier (argument_list "(param_2,uVar19)" ( identifier , identifier ))) ;) (expression_statement "dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);" (assignment_expression "dVar2 = *(double *)(param_2[10] + 0x28 + iVar12)" identifier = (pointer_expression "*(double *)(param_2[10] + 0x28 + iVar12)" * (cast_expression "(double *)(param_2[10] + 0x28 + iVar12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[10] + 0x28 + iVar12)" ( (binary_expression "param_2[10] + 0x28 + iVar12" (binary_expression "param_2[10] + 0x28" (subscript_expression "param_2[10]" identifier [ number_literal ]) + number_literal) + identifier) ))))) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (if_statement "if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }" if (parenthesized_expression "((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8))" ( (binary_expression "(0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)" (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) && (parenthesized_expression "(uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)" ( (comma_expression "uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8" (assignment_expression "uVar19 = 0xffff" identifier = number_literal) , (binary_expression "dVar2 < (double)DAT_002df8a8" identifier < (cast_expression "(double)DAT_002df8a8" ( (type_descriptor "double" primitive_type) ) identifier))) ))) )) (compound_statement "{\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }" { (expression_statement "uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;" (assignment_expression "uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff" identifier = (binary_expression "(int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff" (cast_expression "(int)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" identifier (argument_list "(dVar2 + (double)DAT_002df2b8)" ( (binary_expression "dVar2 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))) & number_literal)) ;) })) (expression_statement "WriteBlobMSBShort(param_2,uVar19);" (call_expression "WriteBlobMSBShort(param_2,uVar19)" identifier (argument_list "(param_2,uVar19)" ( identifier , identifier ))) ;) (expression_statement "dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);" (assignment_expression "dVar2 = *(double *)(param_2[10] + 0x30 + iVar12)" identifier = (pointer_expression "*(double *)(param_2[10] + 0x30 + iVar12)" * (cast_expression "(double *)(param_2[10] + 0x30 + iVar12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[10] + 0x30 + iVar12)" ( (binary_expression "param_2[10] + 0x30 + iVar12" (binary_expression "param_2[10] + 0x30" (subscript_expression "param_2[10]" identifier [ number_literal ]) + number_literal) + identifier) ))))) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (if_statement "if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }" if (parenthesized_expression "((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8))" ( (binary_expression "(0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)" (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) && (parenthesized_expression "(uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)" ( (comma_expression "uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8" (assignment_expression "uVar19 = 0xffff" identifier = number_literal) , (binary_expression "dVar2 < (double)DAT_002df8a8" identifier < (cast_expression "(double)DAT_002df8a8" ( (type_descriptor "double" primitive_type) ) identifier))) ))) )) (compound_statement "{\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }" { (expression_statement "uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;" (assignment_expression "uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff" identifier = (binary_expression "(int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff" (cast_expression "(int)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" identifier (argument_list "(dVar2 + (double)DAT_002df2b8)" ( (binary_expression "dVar2 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))) & number_literal)) ;) })) (expression_statement "uVar27 = uVar27 + 1;" (assignment_expression "uVar27 = uVar27 + 1" identifier = (binary_expression "uVar27 + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = iVar12 + 0x50;" (assignment_expression "iVar12 = iVar12 + 0x50" identifier = (binary_expression "iVar12 + 0x50" identifier + number_literal)) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar19);" (call_expression "WriteBlobMSBShort(param_2,uVar19)" identifier (argument_list "(param_2,uVar19)" ( identifier , identifier ))) ;) }) while (parenthesized_expression "((int)uVar27 < param_2[9])" ( (binary_expression "(int)uVar27 < param_2[9]" (cast_expression "(int)uVar27" ( (type_descriptor "int" primitive_type) ) identifier) < (subscript_expression "param_2[9]" identifier [ number_literal ])) )) ;) })) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" identifier (argument_list "(param_2,uVar26)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" identifier (argument_list "(param_2,uVar14)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" identifier (argument_list "(param_2,uVar26)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" identifier (argument_list "(param_2,uVar14)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,local_90);" (call_expression "WriteBlobMSBShort(param_2,local_90)" identifier (argument_list "(param_2,local_90)" ( identifier , identifier ))) ;) (expression_statement "local_9c = (undefined1 *)0x0;" (assignment_expression "local_9c = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (if_statement "if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }" if (parenthesized_expression "(0 < param_2[7])" ( (binary_expression "0 < param_2[7]" number_literal < (subscript_expression "param_2[7]" identifier [ number_literal ])) )) (compound_statement "{\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }" { (do_statement "do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);" do (compound_statement "{\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            }" { (expression_statement "iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);" (assignment_expression "iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3)" identifier = (call_expression "GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3)" identifier (argument_list "(param_2,0,local_a0,param_2[6],1,param_3)" ( identifier , number_literal , identifier , (subscript_expression "param_2[6]" identifier [ number_literal ]) , number_literal , identifier )))) ;) (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar20 = param_2[6];" (assignment_expression "iVar20 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (if_statement "if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }" if (parenthesized_expression "(0 < iVar20)" ( (binary_expression "0 < iVar20" number_literal < identifier) )) (compound_statement "{\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }" { (expression_statement "iVar17 = param_2[0xa6];" (assignment_expression "iVar17 = param_2[0xa6]" identifier = (subscript_expression "param_2[0xa6]" identifier [ number_literal ])) ;) (expression_statement "iVar18 = param_2[0xaa];" (assignment_expression "iVar18 = param_2[0xaa]" identifier = (subscript_expression "param_2[0xaa]" identifier [ number_literal ])) ;) (expression_statement "puVar21 = __s_00;" (assignment_expression "puVar21 = __s_00" identifier = identifier) ;) (do_statement "do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);" do (compound_statement "{\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                }" { (while_statement "while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }" while (parenthesized_expression "(*(int *)(iVar18 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar18 + 0x40) != 0" (pointer_expression "*(int *)(iVar18 + 0x40)" * (cast_expression "(int *)(iVar18 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x40)" ( (binary_expression "iVar18 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }" { (expression_statement "puVar22 = puVar21 + 1;" (assignment_expression "puVar22 = puVar21 + 1" identifier = (binary_expression "puVar21 + 1" identifier + number_literal)) ;) (expression_statement "pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);" (assignment_expression "pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8)" identifier = (cast_expression "(double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + *(int *)(iVar18 + 0x44) * 8)" ( (binary_expression "iVar12 + *(int *)(iVar18 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar18 + 0x44) * 8" (pointer_expression "*(int *)(iVar18 + 0x44)" * (cast_expression "(int *)(iVar18 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x44)" ( (binary_expression "iVar18 + 0x44" identifier + number_literal) )))) * number_literal)) )))) ;) (expression_statement "iVar12 = iVar12 + iVar17 * 8;" (assignment_expression "iVar12 = iVar12 + iVar17 * 8" identifier = (binary_expression "iVar12 + iVar17 * 8" identifier + (binary_expression "iVar17 * 8" identifier * number_literal))) ;) (expression_statement "*puVar21 = (char)(short)ROUND(*pdVar1);" (assignment_expression "*puVar21 = (char)(short)ROUND(*pdVar1)" (pointer_expression "*puVar21" * identifier) = (cast_expression "(char)(short)ROUND(*pdVar1)" ( (type_descriptor "char" primitive_type) ) (cast_expression "(short)ROUND(*pdVar1)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(*pdVar1)" identifier (argument_list "(*pdVar1)" ( (pointer_expression "*pdVar1" * identifier) )))))) ;) (expression_statement "puVar21 = puVar22;" (assignment_expression "puVar21 = puVar22" identifier = identifier) ;) (if_statement "if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;" if (parenthesized_expression "(puVar22 == __s_00 + iVar20)" ( (binary_expression "puVar22 == __s_00 + iVar20" identifier == (binary_expression "__s_00 + iVar20" identifier + identifier)) )) (goto_statement "goto LAB_00279a01;" goto statement_identifier ;)) })) (expression_statement "*puVar21 = 0;" (assignment_expression "*puVar21 = 0" (pointer_expression "*puVar21" * identifier) = number_literal) ;) (expression_statement "puVar21 = puVar21 + 1;" (assignment_expression "puVar21 = puVar21 + 1" identifier = (binary_expression "puVar21 + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = iVar12 + iVar17 * 8;" (assignment_expression "iVar12 = iVar12 + iVar17 * 8" identifier = (binary_expression "iVar12 + iVar17 * 8" identifier + (binary_expression "iVar17 * 8" identifier * number_literal))) ;) }) while (parenthesized_expression "(puVar21 != __s_00 + iVar20)" ( (binary_expression "puVar21 != __s_00 + iVar20" identifier != (binary_expression "__s_00 + iVar20" identifier + identifier)) )) ;) })) (labeled_statement "LAB_00279a01:\n              iVar12 = FUN_00277f10(__s);" statement_identifier : (expression_statement "iVar12 = FUN_00277f10(__s);" (assignment_expression "iVar12 = FUN_00277f10(__s)" identifier = (call_expression "FUN_00277f10(__s)" identifier (argument_list "(__s)" ( identifier )))) ;)) (expression_statement "uVar14 = uVar14 + iVar12;" (assignment_expression "uVar14 = uVar14 + iVar12" identifier = (binary_expression "uVar14 + iVar12" identifier + identifier)) ;) (if_statement "if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;" if (parenthesized_expression "((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0))" ( (binary_expression "(param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)" (parenthesized_expression "(param_2[0xccf] == 0)" ( (binary_expression "param_2[0xccf] == 0" (subscript_expression "param_2[0xccf]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)" ( (comma_expression "iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0" (assignment_expression "iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0)" identifier = (call_expression "SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0)" identifier (argument_list "(param_2,"Save/Image",local_9c,local_98,param_2[7],0)" ( identifier , (string_literal ""Save/Image"" " string_content ") , identifier , identifier , (subscript_expression "param_2[7]" identifier [ number_literal ]) , number_literal )))) , (binary_expression "iVar12 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "local_a0 = local_a0 + 1;" (assignment_expression "local_a0 = local_a0 + 1" identifier = (binary_expression "local_a0 + 1" identifier + number_literal)) ;) (expression_statement "bVar28 = 0xfffffffe < local_9c;" (assignment_expression "bVar28 = 0xfffffffe < local_9c" identifier = (binary_expression "0xfffffffe < local_9c" number_literal < identifier)) ;) (expression_statement "local_9c = (undefined1 *)((int)local_9c + 1);" (assignment_expression "local_9c = (undefined1 *)((int)local_9c + 1)" identifier = (cast_expression "(undefined1 *)((int)local_9c + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 1)" ( (binary_expression "(int)local_9c + 1" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_98 = local_98 + (uint)bVar28;" (assignment_expression "local_98 = local_98 + (uint)bVar28" identifier = (binary_expression "local_98 + (uint)bVar28" identifier + (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "((int)local_a0 < param_2[7])" ( (binary_expression "(int)local_a0 < param_2[7]" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) < (subscript_expression "param_2[7]" identifier [ number_literal ])) )) ;) (goto_statement "goto LAB_002792ae;" goto statement_identifier ;) })) }) (else_clause "else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }" else (compound_statement "{\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }" { (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" identifier (argument_list "(param_2,uVar26)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" identifier (argument_list "(param_2,uVar14)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" identifier (argument_list "(param_2,uVar26)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" identifier (argument_list "(param_2,uVar14)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,local_90);" (call_expression "WriteBlobMSBShort(param_2,local_90)" identifier (argument_list "(param_2,local_90)" ( identifier , identifier ))) ;) (if_statement "if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }" if (parenthesized_expression "(*param_1 == 0xc)" ( (binary_expression "*param_1 == 0xc" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar15 = extraout_ECX;" (assignment_expression "uVar15 = extraout_ECX" identifier = identifier) ;) (expression_statement "memset(__s_00,0,local_94);" (call_expression "memset(__s_00,0,local_94)" identifier (argument_list "(__s_00,0,local_94)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }" if (parenthesized_expression "(0 < param_2[7])" ( (binary_expression "0 < param_2[7]" number_literal < (subscript_expression "param_2[7]" identifier [ number_literal ])) )) (compound_statement "{\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);" do (compound_statement "{\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              }" { (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);" (assignment_expression "iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15)" identifier = (call_expression "FUN_00277f10(__s,uVar16,local_94,uVar15)" identifier (argument_list "(__s,uVar16,local_94,uVar15)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar14 = uVar14 + iVar20;" (assignment_expression "uVar14 = uVar14 + iVar20" identifier = (binary_expression "uVar14 + iVar20" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar12 < param_2[7])" ( (binary_expression "iVar12 < param_2[7]" identifier < (subscript_expression "param_2[7]" identifier [ number_literal ])) )) ;) (goto_statement "goto LAB_002792ae;" goto statement_identifier ;) })) }) (else_clause "else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }" else (compound_statement "{\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }" { (expression_statement "iVar12 = param_2[6];" (assignment_expression "iVar12 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "local_a4 = __s_00 + iVar12 * 3;" (assignment_expression "local_a4 = __s_00 + iVar12 * 3" identifier = (binary_expression "__s_00 + iVar12 * 3" identifier + (binary_expression "iVar12 * 3" identifier * number_literal))) ;) (if_statement "if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }" if (parenthesized_expression "(0 < param_2[7])" ( (binary_expression "0 < param_2[7]" number_literal < (subscript_expression "param_2[7]" identifier [ number_literal ])) )) (compound_statement "{\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (while_statement "while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }" while (parenthesized_expression "(iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0)" ( (comma_expression "iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0" (assignment_expression "iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3)" identifier = (call_expression "GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3)" identifier (argument_list "(param_2,0,iVar20,iVar12,1,param_3)" ( identifier , number_literal , identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar12 != 0" identifier != number_literal)) )) (compound_statement "{\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }" { (expression_statement "iVar17 = param_2[6];" (assignment_expression "iVar17 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "puVar21 = __s_00 + iVar17;" (assignment_expression "puVar21 = __s_00 + iVar17" identifier = (binary_expression "__s_00 + iVar17" identifier + identifier)) ;) (expression_statement "puVar22 = puVar21 + iVar17;" (assignment_expression "puVar22 = puVar21 + iVar17" identifier = (binary_expression "puVar21 + iVar17" identifier + identifier)) ;) (expression_statement "iVar18 = param_2[0xa5];" (assignment_expression "iVar18 = param_2[0xa5]" identifier = (subscript_expression "param_2[0xa5]" identifier [ number_literal ])) ;) (expression_statement "local_9c = puVar21;" (assignment_expression "local_9c = puVar21" identifier = identifier) ;) (expression_statement "local_90 = puVar22;" (assignment_expression "local_90 = puVar22" identifier = identifier) ;) (expression_statement "local_8c = __s_00;" (assignment_expression "local_8c = __s_00" identifier = identifier) ;) (if_statement "if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }" { (expression_statement "local_90 = puVar22 + iVar17;" (assignment_expression "local_90 = puVar22 + iVar17" identifier = (binary_expression "puVar22 + iVar17" identifier + identifier)) ;) (expression_statement "local_a4 = __s_00;" (assignment_expression "local_a4 = __s_00" identifier = identifier) ;) (expression_statement "local_9c = puVar22;" (assignment_expression "local_9c = puVar22" identifier = identifier) ;) (expression_statement "local_8c = puVar21;" (assignment_expression "local_8c = puVar21" identifier = identifier) ;) })) (if_statement "if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }" if (parenthesized_expression "(0 < iVar17)" ( (binary_expression "0 < iVar17" number_literal < identifier) )) (compound_statement "{\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }" { (expression_statement "iVar6 = param_2[0xa6];" (assignment_expression "iVar6 = param_2[0xa6]" identifier = (subscript_expression "param_2[0xa6]" identifier [ number_literal ])) ;) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = param_2[0xaa];" (assignment_expression "iVar7 = param_2[0xaa]" identifier = (subscript_expression "param_2[0xaa]" identifier [ number_literal ])) ;) (expression_statement "puVar21 = local_a4;" (assignment_expression "puVar21 = local_a4" identifier = identifier) ;) (do_statement "do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);" do (compound_statement "{\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  }" { (expression_statement "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);" (assignment_expression "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8)" identifier = (pointer_expression "*(double *)(iVar12 + *(int *)(iVar7 + 8) * 8)" * (cast_expression "(double *)(iVar12 + *(int *)(iVar7 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + *(int *)(iVar7 + 8) * 8)" ( (binary_expression "iVar12 + *(int *)(iVar7 + 8) * 8" identifier + (binary_expression "*(int *)(iVar7 + 8) * 8" (pointer_expression "*(int *)(iVar7 + 8)" * (cast_expression "(int *)(iVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }" { (expression_statement "dVar2 = dVar2 / (double)DAT_002e814c;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002e814c" identifier = (binary_expression "dVar2 / (double)DAT_002e814c" identifier / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" if (parenthesized_expression "((double)DAT_002e8150 <= dVar2)" ( (binary_expression "(double)DAT_002e8150 <= dVar2" (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                        uVar24 = 0xff;\n                      }" { (expression_statement "uVar24 = 0xff;" (assignment_expression "uVar24 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" else (compound_statement "{\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" { (expression_statement "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" identifier (argument_list "(dVar2 + (double)DAT_002df2b8)" ( (binary_expression "dVar2 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) }))) })) (expression_statement "local_8c[iVar23] = uVar24;" (assignment_expression "local_8c[iVar23] = uVar24" (subscript_expression "local_8c[iVar23]" identifier [ identifier ]) = identifier) ;) (expression_statement "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);" (assignment_expression "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8)" identifier = (pointer_expression "*(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8)" * (cast_expression "(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + *(int *)(iVar7 + 0x14) * 8)" ( (binary_expression "iVar12 + *(int *)(iVar7 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar7 + 0x14) * 8" (pointer_expression "*(int *)(iVar7 + 0x14)" * (cast_expression "(int *)(iVar7 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }" { (expression_statement "dVar2 = dVar2 / (double)DAT_002e814c;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002e814c" identifier = (binary_expression "dVar2 / (double)DAT_002e814c" identifier / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" if (parenthesized_expression "((double)DAT_002e8150 <= dVar2)" ( (binary_expression "(double)DAT_002e8150 <= dVar2" (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                        uVar24 = 0xff;\n                      }" { (expression_statement "uVar24 = 0xff;" (assignment_expression "uVar24 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" else (compound_statement "{\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" { (expression_statement "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" identifier (argument_list "(dVar2 + (double)DAT_002df2b8)" ( (binary_expression "dVar2 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) }))) })) (expression_statement "local_9c[iVar23] = uVar24;" (assignment_expression "local_9c[iVar23] = uVar24" (subscript_expression "local_9c[iVar23]" identifier [ identifier ]) = identifier) ;) (expression_statement "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);" (assignment_expression "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8)" identifier = (pointer_expression "*(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8)" * (cast_expression "(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + *(int *)(iVar7 + 0x20) * 8)" ( (binary_expression "iVar12 + *(int *)(iVar7 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar7 + 0x20) * 8" (pointer_expression "*(int *)(iVar7 + 0x20)" * (cast_expression "(int *)(iVar7 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x20)" ( (binary_expression "iVar7 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }" { (expression_statement "dVar2 = dVar2 / (double)DAT_002e814c;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002e814c" identifier = (binary_expression "dVar2 / (double)DAT_002e814c" identifier / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" if (parenthesized_expression "((double)DAT_002e8150 <= dVar2)" ( (binary_expression "(double)DAT_002e8150 <= dVar2" (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                        uVar24 = 0xff;\n                      }" { (expression_statement "uVar24 = 0xff;" (assignment_expression "uVar24 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" else (compound_statement "{\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" { (expression_statement "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" identifier (argument_list "(dVar2 + (double)DAT_002df2b8)" ( (binary_expression "dVar2 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) }))) })) (expression_statement "local_90[iVar23] = uVar24;" (assignment_expression "local_90[iVar23] = uVar24" (subscript_expression "local_90[iVar23]" identifier [ identifier ]) = identifier) ;) (expression_statement "local_a4 = puVar21;" (assignment_expression "local_a4 = puVar21" identifier = identifier) ;) (if_statement "if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }" { (expression_statement "local_a4 = puVar21 + 1;" (assignment_expression "local_a4 = puVar21 + 1" identifier = (binary_expression "puVar21 + 1" identifier + number_literal)) ;) (expression_statement "uVar24 = 0xff;" (assignment_expression "uVar24 = 0xff" identifier = number_literal) ;) (if_statement "if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }" if (parenthesized_expression "(*(int *)(iVar7 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar7 + 0x34) != 0" (pointer_expression "*(int *)(iVar7 + 0x34)" * (cast_expression "(int *)(iVar7 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x34)" ( (binary_expression "iVar7 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }" { (expression_statement "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);" (assignment_expression "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8)" identifier = (pointer_expression "*(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8)" * (cast_expression "(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + *(int *)(iVar7 + 0x38) * 8)" ( (binary_expression "iVar12 + *(int *)(iVar7 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar7 + 0x38) * 8" (pointer_expression "*(int *)(iVar7 + 0x38)" * (cast_expression "(int *)(iVar7 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x38)" ( (binary_expression "iVar7 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" { (expression_statement "dVar2 = dVar2 / (double)DAT_002e814c;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002e814c" identifier = (binary_expression "dVar2 / (double)DAT_002e814c" identifier / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" if (parenthesized_expression "((double)DAT_002e8150 <= dVar2)" ( (binary_expression "(double)DAT_002e8150 <= dVar2" (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                            uVar24 = 0xff;\n                          }" { (expression_statement "uVar24 = 0xff;" (assignment_expression "uVar24 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" else (compound_statement "{\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" { (expression_statement "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" identifier (argument_list "(dVar2 + (double)DAT_002df2b8)" ( (binary_expression "dVar2 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) }))) })) })) (expression_statement "*puVar21 = uVar24;" (assignment_expression "*puVar21 = uVar24" (pointer_expression "*puVar21" * identifier) = identifier) ;) })) (expression_statement "iVar12 = iVar12 + iVar6 * 8;" (assignment_expression "iVar12 = iVar12 + iVar6 * 8" identifier = (binary_expression "iVar12 + iVar6 * 8" identifier + (binary_expression "iVar6 * 8" identifier * number_literal))) ;) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "puVar21 = local_a4;" (assignment_expression "puVar21 = local_a4" identifier = identifier) ;) }) while (parenthesized_expression "(iVar17 != iVar23)" ( (binary_expression "iVar17 != iVar23" identifier != identifier) )) ;) })) (expression_statement "iVar12 = FUN_00277f10(__s);" (assignment_expression "iVar12 = FUN_00277f10(__s)" identifier = (call_expression "FUN_00277f10(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "uVar14 = uVar14 + iVar12;" (assignment_expression "uVar14 = uVar14 + iVar12" identifier = (binary_expression "uVar14 + iVar12" identifier + identifier)) ;) (if_statement "if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;" if (parenthesized_expression "((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0))" ( (binary_expression "(param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)" (parenthesized_expression "(param_2[0xccf] == 0)" ( (binary_expression "param_2[0xccf] == 0" (subscript_expression "param_2[0xccf]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)" ( (comma_expression "iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0" (assignment_expression "iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0)" identifier = (call_expression "SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0)" identifier (argument_list "(param_2,"Save/Image",local_5c,local_58,param_2[7],0)" ( identifier , (string_literal ""Save/Image"" " string_content ") , identifier , identifier , (subscript_expression "param_2[7]" identifier [ number_literal ]) , number_literal )))) , (binary_expression "iVar12 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (expression_statement "bVar28 = 0xfffffffe < local_5c;" (assignment_expression "bVar28 = 0xfffffffe < local_5c" identifier = (binary_expression "0xfffffffe < local_5c" number_literal < identifier)) ;) (expression_statement "local_5c = local_5c + 1;" (assignment_expression "local_5c = local_5c + 1" identifier = (binary_expression "local_5c + 1" identifier + number_literal)) ;) (expression_statement "local_58 = local_58 + (uint)bVar28;" (assignment_expression "local_58 = local_58 + (uint)bVar28" identifier = (binary_expression "local_58 + (uint)bVar28" identifier + (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (param_2[7] <= iVar20) break;" if (parenthesized_expression "(param_2[7] <= iVar20)" ( (binary_expression "param_2[7] <= iVar20" (subscript_expression "param_2[7]" identifier [ number_literal ]) <= identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = param_2[6];" (assignment_expression "iVar12 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) })) (labeled_statement "LAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }" statement_identifier : (if_statement "if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }" if (parenthesized_expression "((uVar14 & 1) != 0)" ( (binary_expression "(uVar14 & 1) != 0" (parenthesized_expression "(uVar14 & 1)" ( (binary_expression "uVar14 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                WriteBlobByte(param_2,0);\n              }" { (expression_statement "WriteBlobByte(param_2,0);" (call_expression "WriteBlobByte(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) }))) })) }))) }))) (expression_statement "WriteBlobMSBShort(param_2,0xff);" (call_expression "WriteBlobMSBShort(param_2,0xff)" identifier (argument_list "(param_2,0xff)" ( identifier , number_literal ))) ;) (expression_statement "TellBlob(param_2);" (call_expression "TellBlob(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "uVar11 = SeekBlob(param_2,0x200,0,0);" (assignment_expression "uVar11 = SeekBlob(param_2,0x200,0,0)" identifier = (call_expression "SeekBlob(param_2,0x200,0,0)" identifier (argument_list "(param_2,0x200,0,0)" ( identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar11);" (call_expression "WriteBlobMSBShort(param_2,uVar11)" identifier (argument_list "(param_2,uVar11)" ( identifier , identifier ))) ;) (expression_statement "RelinquishMagickMemory(__s_00);" (call_expression "RelinquishMagickMemory(__s_00)" identifier (argument_list "(__s_00)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(__s);" (call_expression "RelinquishMagickMemory(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0027872e;" goto statement_identifier ;) })) (labeled_statement "LAB_0027924d:\n      RelinquishMagickMemory(__s);" statement_identifier : (expression_statement "RelinquishMagickMemory(__s);" (call_expression "RelinquishMagickMemory(__s)" identifier (argument_list "(__s)" ( identifier ))) ;)) }))) (if_statement "if (puVar13 != (undefined4 *)0x0) {\n      RelinquishMagickMemory(puVar13);\n    }" if (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      RelinquishMagickMemory(puVar13);\n    }" { (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) })) (expression_statement "ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6);" (call_expression "ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6)" identifier (argument_list "(param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6)" ( identifier , (string_literal ""coders/pict.c"" " string_content ") , (string_literal ""WritePICTImage"" " string_content ") , number_literal , number_literal , (string_literal ""MemoryAllocationFailed"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_2 + 0xc6" identifier + number_literal) ))) ;) (expression_statement "piVar5 = (int *)param_1[3];" (assignment_expression "piVar5 = (int *)param_1[3]" identifier = (cast_expression "(int *)param_1[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "piVar9 = param_2;" (assignment_expression "piVar9 = param_2" identifier = identifier) ;) (while_statement "while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n      piVar5 = (int *)piVar8[0xccf];\n      piVar9 = piVar5;\n      param_2 = piVar8;\n    }" while (parenthesized_expression "(piVar8 = piVar9, piVar5 != (int *)0x0)" ( (comma_expression "piVar8 = piVar9, piVar5 != (int *)0x0" (assignment_expression "piVar8 = piVar9" identifier = identifier) , (binary_expression "piVar5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      piVar5 = (int *)piVar8[0xccf];\n      piVar9 = piVar5;\n      param_2 = piVar8;\n    }" { (expression_statement "piVar5 = (int *)piVar8[0xccf];" (assignment_expression "piVar5 = (int *)piVar8[0xccf]" identifier = (cast_expression "(int *)piVar8[0xccf]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0xccf]" identifier [ number_literal ]))) ;) (expression_statement "piVar9 = piVar5;" (assignment_expression "piVar9 = piVar5" identifier = identifier) ;) (expression_statement "param_2 = piVar8;" (assignment_expression "param_2 = piVar8" identifier = identifier) ;) })) }) (else_clause "else {\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6);\n    if (param_1[3] != 0) {\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }\n  }" else (compound_statement "{\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6);\n    if (param_1[3] != 0) {\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }\n  }" { (expression_statement "ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6);" (call_expression "ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6)" identifier (argument_list "(param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6)" ( identifier , (string_literal ""coders/pict.c"" " string_content ") , (string_literal ""WritePICTImage"" " string_content ") , number_literal , number_literal , (string_literal ""WidthOrHeightExceedsLimit"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_2 + 0xc6" identifier + number_literal) ))) ;) (if_statement "if (param_1[3] != 0) {\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }" if (parenthesized_expression "(param_1[3] != 0)" ( (binary_expression "param_1[3] != 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }" { (expression_statement "piVar5 = (int *)param_2[0xccf];" (assignment_expression "piVar5 = (int *)param_2[0xccf]" identifier = (cast_expression "(int *)param_2[0xccf]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[0xccf]" identifier [ number_literal ]))) ;) (while_statement "while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }" while (parenthesized_expression "(piVar9 = piVar5, piVar9 != (int *)0x0)" ( (comma_expression "piVar9 = piVar5, piVar9 != (int *)0x0" (assignment_expression "piVar9 = piVar5" identifier = identifier) , (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }" { (expression_statement "param_2 = piVar9;" (assignment_expression "param_2 = piVar9" identifier = identifier) ;) (expression_statement "piVar5 = (int *)piVar9[0xccf];" (assignment_expression "piVar5 = (int *)piVar9[0xccf]" identifier = (cast_expression "(int *)piVar9[0xccf]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[0xccf]" identifier [ number_literal ]))) ;) })) })) }))) (labeled_statement "LAB_00278720:\n  CloseBlob(param_2);" statement_identifier : (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;)) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0027872e:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar12;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar12;\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 iVar12;\n  }" { (return_statement "return iVar12;" return identifier ;) }))) comment (expression_statement "FUN_002decd0();" (call_expression "FUN_002decd0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n/* WARNING: Enum "LogEventType": Some values do not have unique names */\n\nMagickBooleanType WritePICTImage(ImageInfo *image_info,Image *image,ExceptionInfo *exception)\n\n{\n  uint uVar1;\n  double *pdVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  _Image *p_Var6;\n  size_t sVar7;\n  PixelTrait PVar8;\n  PixelChannelMap *pPVar9;\n  ushort value;\n  ushort value_00;\n  ushort uVar10;\n  MagickBooleanType MVar11;\n  ExceptionInfo *memory;\n  Image *pIVar12;\n  undefined1 *memory_00;\n  StringInfo *pSVar13;\n  size_t sVar14;\n  ExceptionInfo *pEVar15;\n  Quantum *pQVar16;\n  Image *pIVar17;\n  ImageInfo *image_info_00;\n  ExceptionInfo *data;\n  int iVar18;\n  uchar *extraout_ECX;\n  undefined1 *puVar19;\n  ExceptionInfo *extraout_ECX_00;\n  ClassType CVar20;\n  undefined1 *puVar21;\n  size_t sVar22;\n  undefined1 uVar23;\n  int iVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  byte bVar26;\n  MagickOffsetType MVar27;\n  undefined1 uVar28;\n  undefined1 uVar29;\n  undefined1 uVar30;\n  undefined2 uVar31;\n  undefined2 uVar32;\n  ExceptionInfo *pixels;\n  uchar *pixels_00;\n  undefined1 *local_a4;\n  size_t local_a0;\n  undefined1 *local_9c;\n  int local_98;\n  size_t local_94;\n  undefined1 *local_90;\n  undefined1 *local_8c;\n  ushort local_88;\n  ushort local_84;\n  uint local_5c;\n  int local_58;\n  size_t length;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar26 = 0;\n  uStack_14 = 0x278539;\n  local_20 = *(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/pict.c",0x6b5,"WritePICTImage");\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");\n  }\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"coders/pict.c","WritePICTImage",0x6ba,"%s",(char)image + '\x18');\n  }\n  if ((image->columns < 0x10000) && (image->rows < 0x10000)) {\n    if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }\n    if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }\n    pixels = exception;\n    MVar11 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);\n    if (MVar11 == MagickFalse) goto LAB_0027872e;\n    TransformImageColorspace(image,sRGBColorspace,exception);\n    sVar14 = image->columns;\n    dVar3 = (image->resolution).x;\n    if ((dVar3 <= DAT_002df2d0) || (dVar4 = (image->resolution).y, dVar4 <= DAT_002df2d0)) {\n      dVar4 = 0.0;\n      dVar3 = 0.0;\n    }\n    else if (image->units == PixelsPerCentimeterResolution) {\n      dVar3 = dVar3 * _DAT_002f84b0;\n      dVar4 = _DAT_002f84b0 * dVar4;\n    }\n    CVar20 = image->storage_class;\n    if ((image_info->compression == JPEGCompression) || (CVar20 == DirectClass)) {\n      local_94 = sVar14 << 2;\n      if (image->alpha_trait == UndefinedPixelTrait) {\n        local_9c._0_2_ = 3;\n        local_a0 = sVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90._0_2_ = 0x40;\n      CVar20 = DirectClass;\n      local_8c._0_2_ = 0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90._0_2_ = 0;\n      local_8c._0_2_ = 8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = sVar14;\n      local_94 = sVar14;\n    }\n    if ((0x7ffe < local_a0 - 1) || (uVar1 = local_94 + 0x100, 0x7ffe < uVar1)) {\n      ThrowMagickException\n                (exception,"coders/pict.c","WritePICTImage",0x700,ImageError,\n                 "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename);\n      p_Var6 = (_Image *)image_info->adjoin;\n      pIVar12 = image;\n      while (pIVar17 = pIVar12, p_Var6 != (_Image *)0x0) {\n        p_Var6 = pIVar17->previous;\n        pIVar12 = p_Var6;\n        image = pIVar17;\n      }\n      goto LAB_00278720;\n    }\n    sVar7 = image->rows;\n    memory = (ExceptionInfo *)AcquireQuantumMemory(0x200,1);\n    pIVar12 = (Image *)AcquireQuantumMemory(uVar1,1);\n    memory_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);\n    if ((memory == (ExceptionInfo *)0x0) || (pIVar12 == (Image *)0x0)) {\n      if (memory_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(memory_00);\n      }\n      if (pIVar12 != (Image *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (memory_00 != (undefined1 *)0x0) {\n        memset(memory_00,0,local_94);\n        memset(pIVar12,0,uVar1);\n        pEVar15 = memory;\n        for (iVar18 = 0x80; iVar18 != 0; iVar18 = iVar18 + -1) {\n          pEVar15->severity = UndefinedException;\n          pEVar15 = (ExceptionInfo *)((int)pEVar15 + (uint)bVar26 * -8 + 4);\n        }\n        pEVar15 = memory;\n        WriteBlob(image,0x200,memory);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        value_00 = (ushort)sVar7;\n        WriteBlobMSBShort(image,value_00);\n        value = (ushort)sVar14;\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBShort(image,0x11);\n        WriteBlobMSBShort(image,0x2ff);\n        WriteBlobMSBShort(image,0xc00);\n        WriteBlobMSBLong(image,0xfffe0000);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBLong(image,0);\n        pSVar13 = GetImageProfile(image,"iptc");\n        if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0x1f2);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobString(image,"8BIM");\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n        }\n        pSVar13 = GetImageProfile(image,"icc");\n        if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobMSBLong(image,0);\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          WriteBlobMSBShort(image,4);\n          WriteBlobMSBLong(image,2);\n        }\n        WriteBlobMSBShort(image,1);\n        WriteBlobMSBShort(image,10);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        if (image_info->compression == JPEGCompression) {\n          pIVar17 = CloneImage(image,0,0,MagickTrue,exception);\n          if (pIVar17 == (Image *)0x0) {\n            CloseBlob(image);\n          }\n          else {\n            image_info_00 = CloneImageInfo(image_info);\n            CopyMagickString(image_info_00->magick,"JPEG",0x1000);\n            length = 0;\n            pixels = exception;\n            data = (ExceptionInfo *)ImageToBlob(image_info_00,pIVar17,&length,exception);\n            DestroyImageInfo(image_info_00);\n            if (data != (ExceptionInfo *)0x0) {\n              DestroyImage(pIVar17);\n              WriteBlobMSBShort(image,0x8200);\n              WriteBlobMSBLong(image,length + 0x9a);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x40000000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x400000);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x566a70);\n              WriteBlobMSBLong(image,0x65670000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,1);\n              WriteBlobMSBLong(image,0x16170);\n              WriteBlobMSBLong(image,0x706c0000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,length);\n              WriteBlobMSBShort(image,1);\n              WriteBlobMSBLong(image,0xb466f74);\n              WriteBlobMSBLong(image,0x6f202d20);\n              WriteBlobMSBLong(image,0x4a504547);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x18ffff);\n              pEVar15 = data;\n              WriteBlob(image,length,data);\n              if ((length & 1) != 0) {\n                pEVar15 = extraout_ECX_00;\n                pixels = extraout_ECX_00;\n                WriteBlobByte(image,'\0');\n              }\n              RelinquishMagickMemory(data);\n              goto LAB_00278cac;\n            }\n          }\n          MVar11 = MagickFalse;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBShort(image,0x98);\n        }\n        else {\n          WriteBlobMSBShort(image,0x9a);\n          WriteBlobMSBLong(image,0xff);\n        }\n        WriteBlobMSBShort(image,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,local_84);\n        WriteBlobMSBLong(image,0);\n        dVar5 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(image,(ushort)(int)ROUND((float)dVar3 + DAT_002df2b8));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4 + dVar5));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,local_88);\n        WriteBlobMSBShort(image,(ushort)local_8c);\n        WriteBlobMSBShort(image,(ushort)local_9c);\n        WriteBlobMSBShort(image,8);\n        WriteBlobMSBLong(image,0);\n        WriteBlobMSBLong(image,0);\n        WriteBlobMSBLong(image,0);\n        uVar28 = (undefined1)((uint)exception >> 8);\n        uVar31 = (undefined2)((uint)exception >> 0x10);\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBLong(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,(short)image->colors - 1);\n          if (0 < (int)image->colors) {\n            iVar18 = 0;\n            iVar24 = 0;\n            do {\n              WriteBlobMSBShort(image,(ushort)iVar24);\n              dVar3 = *(double *)((int)&image->colormap->red + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->green + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->blue + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              iVar24 = iVar24 + 1;\n              iVar18 = iVar18 + 0x50;\n              WriteBlobMSBShort(image,uVar10);\n            } while (iVar24 < (int)image->colors);\n          }\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar1 = 0;\n          if (0 < (int)image->rows) {\n            do {\n              uVar29 = (char)exception;\n              uVar30 = uVar28;\n              uVar32 = uVar31;\n              pQVar16 = GetVirtualPixels(image,0,local_a0,image->columns,1,exception);\n              if (pQVar16 == (Quantum *)0x0) break;\n              sVar14 = image->columns;\n              if (0 < (int)sVar14) {\n                sVar7 = image->number_channels;\n                pPVar9 = image->channel_map;\n                puVar19 = memory_00;\n                do {\n                  while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }\n                  *puVar19 = 0;\n                  puVar19 = puVar19 + 1;\n                  pQVar16 = pQVar16 + sVar7;\n                } while (puVar19 != memory_00 + sVar14);\n              }\nLAB_00279a01:\n              sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels);\n              uVar1 = uVar1 + sVar14;\n              if ((image->previous == (_Image *)0x0) &&\n                 (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse)) break;\n              local_a0 = local_a0 + 1;\n              bVar25 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar25;\n            } while ((int)local_a0 < (int)image->rows);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          if (image_info->compression == JPEGCompression) {\n            uVar28 = 0;\n            uVar29 = 0;\n            uVar31 = 0;\n            pixels_00 = extraout_ECX;\n            memset(memory_00,0,local_94);\n            if (0 < (int)image->rows) {\n              iVar18 = 0;\n              uVar1 = 0;\n              do {\n                iVar18 = iVar18 + 1;\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00);\n                uVar1 = uVar1 + sVar14;\n              } while (iVar18 < (int)image->rows);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            sVar14 = image->columns;\n            local_a4 = memory_00 + sVar14 * 3;\n            if (0 < (int)image->rows) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar18 = 0;\n              uVar1 = 0;\n              while (uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0) {\n                sVar14 = image->columns;\n                puVar19 = memory_00 + sVar14;\n                puVar21 = puVar19 + sVar14;\n                PVar8 = image->alpha_trait;\n                local_9c = puVar19;\n                local_90 = puVar21;\n                local_8c = memory_00;\n                if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }\n                if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);\n                uVar1 = uVar1 + sVar14;\n                if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;\n                iVar18 = iVar18 + 1;\n                bVar25 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar25;\n                if ((int)image->rows <= iVar18) break;\n                sVar14 = image->columns;\n              }\nLAB_002792ae:\n              if ((uVar1 & 1) != 0) {\n                WriteBlobByte(image,'\0');\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(image,0xff);\n        TellBlob(image);\n        MVar27 = SeekBlob(image,0x200,0);\n        WriteBlobMSBShort(image,(ushort)MVar27);\n        RelinquishMagickMemory(memory_00);\n        RelinquishMagickMemory(pIVar12);\n        RelinquishMagickMemory(memory);\n        CloseBlob(image);\n        MVar11 = MagickTrue;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(pIVar12);\n    }\n    if (memory != (ExceptionInfo *)0x0) {\n      RelinquishMagickMemory(memory);\n    }\n    ThrowMagickException\n              (exception,"coders/pict.c","WritePICTImage",0x710,ErrorException,\n               "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n    p_Var6 = (_Image *)image_info->adjoin;\n    pIVar12 = image;\n    while (pIVar17 = pIVar12, p_Var6 != (_Image *)0x0) {\n      p_Var6 = pIVar17->previous;\n      pIVar12 = p_Var6;\n      image = pIVar17;\n    }\n  }\n  else {\n    ThrowMagickException\n              (exception,"coders/pict.c","WritePICTImage",0x6bc,ImageError,\n               "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename);\n    if (image_info->adjoin != MagickFalse) {\n      pIVar12 = image->previous;\n      while (pIVar17 = pIVar12, pIVar17 != (Image *)0x0) {\n        image = pIVar17;\n        pIVar12 = pIVar17->previous;\n      }\n    }\n  }\nLAB_00278720:\n  CloseBlob(image);\n  MVar11 = MagickFalse;\nLAB_0027872e:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return MVar11;\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 "MagickBooleanType WritePICTImage(ImageInfo *image_info,Image *image,ExceptionInfo *exception)\n\n{\n  uint uVar1;\n  double *pdVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  _Image *p_Var6;\n  size_t sVar7;\n  PixelTrait PVar8;\n  PixelChannelMap *pPVar9;\n  ushort value;\n  ushort value_00;\n  ushort uVar10;\n  MagickBooleanType MVar11;\n  ExceptionInfo *memory;\n  Image *pIVar12;\n  undefined1 *memory_00;\n  StringInfo *pSVar13;\n  size_t sVar14;\n  ExceptionInfo *pEVar15;\n  Quantum *pQVar16;\n  Image *pIVar17;\n  ImageInfo *image_info_00;\n  ExceptionInfo *data;\n  int iVar18;\n  uchar *extraout_ECX;\n  undefined1 *puVar19;\n  ExceptionInfo *extraout_ECX_00;\n  ClassType CVar20;\n  undefined1 *puVar21;\n  size_t sVar22;\n  undefined1 uVar23;\n  int iVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  byte bVar26;\n  MagickOffsetType MVar27;\n  undefined1 uVar28;\n  undefined1 uVar29;\n  undefined1 uVar30;\n  undefined2 uVar31;\n  undefined2 uVar32;\n  ExceptionInfo *pixels;\n  uchar *pixels_00;\n  undefined1 *local_a4;\n  size_t local_a0;\n  undefined1 *local_9c;\n  int local_98;\n  size_t local_94;\n  undefined1 *local_90;\n  undefined1 *local_8c;\n  ushort local_88;\n  ushort local_84;\n  uint local_5c;\n  int local_58;\n  size_t length;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar26 = 0;\n  uStack_14 = 0x278539;\n  local_20 = *(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/pict.c",0x6b5,"WritePICTImage");\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");\n  }\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"coders/pict.c","WritePICTImage",0x6ba,"%s",(char)image + '\x18');\n  }\n  if ((image->columns < 0x10000) && (image->rows < 0x10000)) {\n    if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }\n    if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }\n    pixels = exception;\n    MVar11 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);\n    if (MVar11 == MagickFalse) goto LAB_0027872e;\n    TransformImageColorspace(image,sRGBColorspace,exception);\n    sVar14 = image->columns;\n    dVar3 = (image->resolution).x;\n    if ((dVar3 <= DAT_002df2d0) || (dVar4 = (image->resolution).y, dVar4 <= DAT_002df2d0)) {\n      dVar4 = 0.0;\n      dVar3 = 0.0;\n    }\n    else if (image->units == PixelsPerCentimeterResolution) {\n      dVar3 = dVar3 * _DAT_002f84b0;\n      dVar4 = _DAT_002f84b0 * dVar4;\n    }\n    CVar20 = image->storage_class;\n    if ((image_info->compression == JPEGCompression) || (CVar20 == DirectClass)) {\n      local_94 = sVar14 << 2;\n      if (image->alpha_trait == UndefinedPixelTrait) {\n        local_9c._0_2_ = 3;\n        local_a0 = sVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90._0_2_ = 0x40;\n      CVar20 = DirectClass;\n      local_8c._0_2_ = 0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90._0_2_ = 0;\n      local_8c._0_2_ = 8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = sVar14;\n      local_94 = sVar14;\n    }\n    if ((0x7ffe < local_a0 - 1) || (uVar1 = local_94 + 0x100, 0x7ffe < uVar1)) {\n      ThrowMagickException\n                (exception,"coders/pict.c","WritePICTImage",0x700,ImageError,\n                 "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename);\n      p_Var6 = (_Image *)image_info->adjoin;\n      pIVar12 = image;\n      while (pIVar17 = pIVar12, p_Var6 != (_Image *)0x0) {\n        p_Var6 = pIVar17->previous;\n        pIVar12 = p_Var6;\n        image = pIVar17;\n      }\n      goto LAB_00278720;\n    }\n    sVar7 = image->rows;\n    memory = (ExceptionInfo *)AcquireQuantumMemory(0x200,1);\n    pIVar12 = (Image *)AcquireQuantumMemory(uVar1,1);\n    memory_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);\n    if ((memory == (ExceptionInfo *)0x0) || (pIVar12 == (Image *)0x0)) {\n      if (memory_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(memory_00);\n      }\n      if (pIVar12 != (Image *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (memory_00 != (undefined1 *)0x0) {\n        memset(memory_00,0,local_94);\n        memset(pIVar12,0,uVar1);\n        pEVar15 = memory;\n        for (iVar18 = 0x80; iVar18 != 0; iVar18 = iVar18 + -1) {\n          pEVar15->severity = UndefinedException;\n          pEVar15 = (ExceptionInfo *)((int)pEVar15 + (uint)bVar26 * -8 + 4);\n        }\n        pEVar15 = memory;\n        WriteBlob(image,0x200,memory);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        value_00 = (ushort)sVar7;\n        WriteBlobMSBShort(image,value_00);\n        value = (ushort)sVar14;\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBShort(image,0x11);\n        WriteBlobMSBShort(image,0x2ff);\n        WriteBlobMSBShort(image,0xc00);\n        WriteBlobMSBLong(image,0xfffe0000);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBLong(image,0);\n        pSVar13 = GetImageProfile(image,"iptc");\n        if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0x1f2);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobString(image,"8BIM");\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n        }\n        pSVar13 = GetImageProfile(image,"icc");\n        if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobMSBLong(image,0);\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          WriteBlobMSBShort(image,4);\n          WriteBlobMSBLong(image,2);\n        }\n        WriteBlobMSBShort(image,1);\n        WriteBlobMSBShort(image,10);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        if (image_info->compression == JPEGCompression) {\n          pIVar17 = CloneImage(image,0,0,MagickTrue,exception);\n          if (pIVar17 == (Image *)0x0) {\n            CloseBlob(image);\n          }\n          else {\n            image_info_00 = CloneImageInfo(image_info);\n            CopyMagickString(image_info_00->magick,"JPEG",0x1000);\n            length = 0;\n            pixels = exception;\n            data = (ExceptionInfo *)ImageToBlob(image_info_00,pIVar17,&length,exception);\n            DestroyImageInfo(image_info_00);\n            if (data != (ExceptionInfo *)0x0) {\n              DestroyImage(pIVar17);\n              WriteBlobMSBShort(image,0x8200);\n              WriteBlobMSBLong(image,length + 0x9a);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x40000000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x400000);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x566a70);\n              WriteBlobMSBLong(image,0x65670000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,1);\n              WriteBlobMSBLong(image,0x16170);\n              WriteBlobMSBLong(image,0x706c0000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,length);\n              WriteBlobMSBShort(image,1);\n              WriteBlobMSBLong(image,0xb466f74);\n              WriteBlobMSBLong(image,0x6f202d20);\n              WriteBlobMSBLong(image,0x4a504547);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x18ffff);\n              pEVar15 = data;\n              WriteBlob(image,length,data);\n              if ((length & 1) != 0) {\n                pEVar15 = extraout_ECX_00;\n                pixels = extraout_ECX_00;\n                WriteBlobByte(image,'\0');\n              }\n              RelinquishMagickMemory(data);\n              goto LAB_00278cac;\n            }\n          }\n          MVar11 = MagickFalse;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBShort(image,0x98);\n        }\n        else {\n          WriteBlobMSBShort(image,0x9a);\n          WriteBlobMSBLong(image,0xff);\n        }\n        WriteBlobMSBShort(image,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,local_84);\n        WriteBlobMSBLong(image,0);\n        dVar5 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(image,(ushort)(int)ROUND((float)dVar3 + DAT_002df2b8));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4 + dVar5));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,local_88);\n        WriteBlobMSBShort(image,(ushort)local_8c);\n        WriteBlobMSBShort(image,(ushort)local_9c);\n        WriteBlobMSBShort(image,8);\n        WriteBlobMSBLong(image,0);\n        WriteBlobMSBLong(image,0);\n        WriteBlobMSBLong(image,0);\n        uVar28 = (undefined1)((uint)exception >> 8);\n        uVar31 = (undefined2)((uint)exception >> 0x10);\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBLong(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,(short)image->colors - 1);\n          if (0 < (int)image->colors) {\n            iVar18 = 0;\n            iVar24 = 0;\n            do {\n              WriteBlobMSBShort(image,(ushort)iVar24);\n              dVar3 = *(double *)((int)&image->colormap->red + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->green + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->blue + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              iVar24 = iVar24 + 1;\n              iVar18 = iVar18 + 0x50;\n              WriteBlobMSBShort(image,uVar10);\n            } while (iVar24 < (int)image->colors);\n          }\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar1 = 0;\n          if (0 < (int)image->rows) {\n            do {\n              uVar29 = (char)exception;\n              uVar30 = uVar28;\n              uVar32 = uVar31;\n              pQVar16 = GetVirtualPixels(image,0,local_a0,image->columns,1,exception);\n              if (pQVar16 == (Quantum *)0x0) break;\n              sVar14 = image->columns;\n              if (0 < (int)sVar14) {\n                sVar7 = image->number_channels;\n                pPVar9 = image->channel_map;\n                puVar19 = memory_00;\n                do {\n                  while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }\n                  *puVar19 = 0;\n                  puVar19 = puVar19 + 1;\n                  pQVar16 = pQVar16 + sVar7;\n                } while (puVar19 != memory_00 + sVar14);\n              }\nLAB_00279a01:\n              sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels);\n              uVar1 = uVar1 + sVar14;\n              if ((image->previous == (_Image *)0x0) &&\n                 (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse)) break;\n              local_a0 = local_a0 + 1;\n              bVar25 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar25;\n            } while ((int)local_a0 < (int)image->rows);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          if (image_info->compression == JPEGCompression) {\n            uVar28 = 0;\n            uVar29 = 0;\n            uVar31 = 0;\n            pixels_00 = extraout_ECX;\n            memset(memory_00,0,local_94);\n            if (0 < (int)image->rows) {\n              iVar18 = 0;\n              uVar1 = 0;\n              do {\n                iVar18 = iVar18 + 1;\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00);\n                uVar1 = uVar1 + sVar14;\n              } while (iVar18 < (int)image->rows);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            sVar14 = image->columns;\n            local_a4 = memory_00 + sVar14 * 3;\n            if (0 < (int)image->rows) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar18 = 0;\n              uVar1 = 0;\n              while (uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0) {\n                sVar14 = image->columns;\n                puVar19 = memory_00 + sVar14;\n                puVar21 = puVar19 + sVar14;\n                PVar8 = image->alpha_trait;\n                local_9c = puVar19;\n                local_90 = puVar21;\n                local_8c = memory_00;\n                if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }\n                if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);\n                uVar1 = uVar1 + sVar14;\n                if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;\n                iVar18 = iVar18 + 1;\n                bVar25 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar25;\n                if ((int)image->rows <= iVar18) break;\n                sVar14 = image->columns;\n              }\nLAB_002792ae:\n              if ((uVar1 & 1) != 0) {\n                WriteBlobByte(image,'\0');\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(image,0xff);\n        TellBlob(image);\n        MVar27 = SeekBlob(image,0x200,0);\n        WriteBlobMSBShort(image,(ushort)MVar27);\n        RelinquishMagickMemory(memory_00);\n        RelinquishMagickMemory(pIVar12);\n        RelinquishMagickMemory(memory);\n        CloseBlob(image);\n        MVar11 = MagickTrue;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(pIVar12);\n    }\n    if (memory != (ExceptionInfo *)0x0) {\n      RelinquishMagickMemory(memory);\n    }\n    ThrowMagickException\n              (exception,"coders/pict.c","WritePICTImage",0x710,ErrorException,\n               "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n    p_Var6 = (_Image *)image_info->adjoin;\n    pIVar12 = image;\n    while (pIVar17 = pIVar12, p_Var6 != (_Image *)0x0) {\n      p_Var6 = pIVar17->previous;\n      pIVar12 = p_Var6;\n      image = pIVar17;\n    }\n  }\n  else {\n    ThrowMagickException\n              (exception,"coders/pict.c","WritePICTImage",0x6bc,ImageError,\n               "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename);\n    if (image_info->adjoin != MagickFalse) {\n      pIVar12 = image->previous;\n      while (pIVar17 = pIVar12, pIVar17 != (Image *)0x0) {\n        image = pIVar17;\n        pIVar12 = pIVar17->previous;\n      }\n    }\n  }\nLAB_00278720:\n  CloseBlob(image);\n  MVar11 = MagickFalse;\nLAB_0027872e:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return MVar11;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" type_identifier (function_declarator "WritePICTImage(ImageInfo *image_info,Image *image,ExceptionInfo *exception)" identifier (parameter_list "(ImageInfo *image_info,Image *image,ExceptionInfo *exception)" ( (parameter_declaration "ImageInfo *image_info" type_identifier (pointer_declarator "*image_info" * identifier)) , (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  double *pdVar2;\n  double dVar3;\n  double dVar4;\n  double dVar5;\n  _Image *p_Var6;\n  size_t sVar7;\n  PixelTrait PVar8;\n  PixelChannelMap *pPVar9;\n  ushort value;\n  ushort value_00;\n  ushort uVar10;\n  MagickBooleanType MVar11;\n  ExceptionInfo *memory;\n  Image *pIVar12;\n  undefined1 *memory_00;\n  StringInfo *pSVar13;\n  size_t sVar14;\n  ExceptionInfo *pEVar15;\n  Quantum *pQVar16;\n  Image *pIVar17;\n  ImageInfo *image_info_00;\n  ExceptionInfo *data;\n  int iVar18;\n  uchar *extraout_ECX;\n  undefined1 *puVar19;\n  ExceptionInfo *extraout_ECX_00;\n  ClassType CVar20;\n  undefined1 *puVar21;\n  size_t sVar22;\n  undefined1 uVar23;\n  int iVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  byte bVar26;\n  MagickOffsetType MVar27;\n  undefined1 uVar28;\n  undefined1 uVar29;\n  undefined1 uVar30;\n  undefined2 uVar31;\n  undefined2 uVar32;\n  ExceptionInfo *pixels;\n  uchar *pixels_00;\n  undefined1 *local_a4;\n  size_t local_a0;\n  undefined1 *local_9c;\n  int local_98;\n  size_t local_94;\n  undefined1 *local_90;\n  undefined1 *local_8c;\n  ushort local_88;\n  ushort local_84;\n  uint local_5c;\n  int local_58;\n  size_t length;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar26 = 0;\n  uStack_14 = 0x278539;\n  local_20 = *(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/pict.c",0x6b5,"WritePICTImage");\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");\n  }\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"coders/pict.c","WritePICTImage",0x6ba,"%s",(char)image + '\x18');\n  }\n  if ((image->columns < 0x10000) && (image->rows < 0x10000)) {\n    if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }\n    if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }\n    pixels = exception;\n    MVar11 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);\n    if (MVar11 == MagickFalse) goto LAB_0027872e;\n    TransformImageColorspace(image,sRGBColorspace,exception);\n    sVar14 = image->columns;\n    dVar3 = (image->resolution).x;\n    if ((dVar3 <= DAT_002df2d0) || (dVar4 = (image->resolution).y, dVar4 <= DAT_002df2d0)) {\n      dVar4 = 0.0;\n      dVar3 = 0.0;\n    }\n    else if (image->units == PixelsPerCentimeterResolution) {\n      dVar3 = dVar3 * _DAT_002f84b0;\n      dVar4 = _DAT_002f84b0 * dVar4;\n    }\n    CVar20 = image->storage_class;\n    if ((image_info->compression == JPEGCompression) || (CVar20 == DirectClass)) {\n      local_94 = sVar14 << 2;\n      if (image->alpha_trait == UndefinedPixelTrait) {\n        local_9c._0_2_ = 3;\n        local_a0 = sVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90._0_2_ = 0x40;\n      CVar20 = DirectClass;\n      local_8c._0_2_ = 0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90._0_2_ = 0;\n      local_8c._0_2_ = 8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = sVar14;\n      local_94 = sVar14;\n    }\n    if ((0x7ffe < local_a0 - 1) || (uVar1 = local_94 + 0x100, 0x7ffe < uVar1)) {\n      ThrowMagickException\n                (exception,"coders/pict.c","WritePICTImage",0x700,ImageError,\n                 "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename);\n      p_Var6 = (_Image *)image_info->adjoin;\n      pIVar12 = image;\n      while (pIVar17 = pIVar12, p_Var6 != (_Image *)0x0) {\n        p_Var6 = pIVar17->previous;\n        pIVar12 = p_Var6;\n        image = pIVar17;\n      }\n      goto LAB_00278720;\n    }\n    sVar7 = image->rows;\n    memory = (ExceptionInfo *)AcquireQuantumMemory(0x200,1);\n    pIVar12 = (Image *)AcquireQuantumMemory(uVar1,1);\n    memory_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);\n    if ((memory == (ExceptionInfo *)0x0) || (pIVar12 == (Image *)0x0)) {\n      if (memory_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(memory_00);\n      }\n      if (pIVar12 != (Image *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (memory_00 != (undefined1 *)0x0) {\n        memset(memory_00,0,local_94);\n        memset(pIVar12,0,uVar1);\n        pEVar15 = memory;\n        for (iVar18 = 0x80; iVar18 != 0; iVar18 = iVar18 + -1) {\n          pEVar15->severity = UndefinedException;\n          pEVar15 = (ExceptionInfo *)((int)pEVar15 + (uint)bVar26 * -8 + 4);\n        }\n        pEVar15 = memory;\n        WriteBlob(image,0x200,memory);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        value_00 = (ushort)sVar7;\n        WriteBlobMSBShort(image,value_00);\n        value = (ushort)sVar14;\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBShort(image,0x11);\n        WriteBlobMSBShort(image,0x2ff);\n        WriteBlobMSBShort(image,0xc00);\n        WriteBlobMSBLong(image,0xfffe0000);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBLong(image,0);\n        pSVar13 = GetImageProfile(image,"iptc");\n        if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0x1f2);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobString(image,"8BIM");\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n        }\n        pSVar13 = GetImageProfile(image,"icc");\n        if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobMSBLong(image,0);\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          WriteBlobMSBShort(image,4);\n          WriteBlobMSBLong(image,2);\n        }\n        WriteBlobMSBShort(image,1);\n        WriteBlobMSBShort(image,10);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        if (image_info->compression == JPEGCompression) {\n          pIVar17 = CloneImage(image,0,0,MagickTrue,exception);\n          if (pIVar17 == (Image *)0x0) {\n            CloseBlob(image);\n          }\n          else {\n            image_info_00 = CloneImageInfo(image_info);\n            CopyMagickString(image_info_00->magick,"JPEG",0x1000);\n            length = 0;\n            pixels = exception;\n            data = (ExceptionInfo *)ImageToBlob(image_info_00,pIVar17,&length,exception);\n            DestroyImageInfo(image_info_00);\n            if (data != (ExceptionInfo *)0x0) {\n              DestroyImage(pIVar17);\n              WriteBlobMSBShort(image,0x8200);\n              WriteBlobMSBLong(image,length + 0x9a);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x40000000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x400000);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x566a70);\n              WriteBlobMSBLong(image,0x65670000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,1);\n              WriteBlobMSBLong(image,0x16170);\n              WriteBlobMSBLong(image,0x706c0000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,length);\n              WriteBlobMSBShort(image,1);\n              WriteBlobMSBLong(image,0xb466f74);\n              WriteBlobMSBLong(image,0x6f202d20);\n              WriteBlobMSBLong(image,0x4a504547);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x18ffff);\n              pEVar15 = data;\n              WriteBlob(image,length,data);\n              if ((length & 1) != 0) {\n                pEVar15 = extraout_ECX_00;\n                pixels = extraout_ECX_00;\n                WriteBlobByte(image,'\0');\n              }\n              RelinquishMagickMemory(data);\n              goto LAB_00278cac;\n            }\n          }\n          MVar11 = MagickFalse;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBShort(image,0x98);\n        }\n        else {\n          WriteBlobMSBShort(image,0x9a);\n          WriteBlobMSBLong(image,0xff);\n        }\n        WriteBlobMSBShort(image,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,local_84);\n        WriteBlobMSBLong(image,0);\n        dVar5 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(image,(ushort)(int)ROUND((float)dVar3 + DAT_002df2b8));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4 + dVar5));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,local_88);\n        WriteBlobMSBShort(image,(ushort)local_8c);\n        WriteBlobMSBShort(image,(ushort)local_9c);\n        WriteBlobMSBShort(image,8);\n        WriteBlobMSBLong(image,0);\n        WriteBlobMSBLong(image,0);\n        WriteBlobMSBLong(image,0);\n        uVar28 = (undefined1)((uint)exception >> 8);\n        uVar31 = (undefined2)((uint)exception >> 0x10);\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBLong(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,(short)image->colors - 1);\n          if (0 < (int)image->colors) {\n            iVar18 = 0;\n            iVar24 = 0;\n            do {\n              WriteBlobMSBShort(image,(ushort)iVar24);\n              dVar3 = *(double *)((int)&image->colormap->red + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->green + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->blue + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              iVar24 = iVar24 + 1;\n              iVar18 = iVar18 + 0x50;\n              WriteBlobMSBShort(image,uVar10);\n            } while (iVar24 < (int)image->colors);\n          }\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar1 = 0;\n          if (0 < (int)image->rows) {\n            do {\n              uVar29 = (char)exception;\n              uVar30 = uVar28;\n              uVar32 = uVar31;\n              pQVar16 = GetVirtualPixels(image,0,local_a0,image->columns,1,exception);\n              if (pQVar16 == (Quantum *)0x0) break;\n              sVar14 = image->columns;\n              if (0 < (int)sVar14) {\n                sVar7 = image->number_channels;\n                pPVar9 = image->channel_map;\n                puVar19 = memory_00;\n                do {\n                  while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }\n                  *puVar19 = 0;\n                  puVar19 = puVar19 + 1;\n                  pQVar16 = pQVar16 + sVar7;\n                } while (puVar19 != memory_00 + sVar14);\n              }\nLAB_00279a01:\n              sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels);\n              uVar1 = uVar1 + sVar14;\n              if ((image->previous == (_Image *)0x0) &&\n                 (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse)) break;\n              local_a0 = local_a0 + 1;\n              bVar25 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar25;\n            } while ((int)local_a0 < (int)image->rows);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          if (image_info->compression == JPEGCompression) {\n            uVar28 = 0;\n            uVar29 = 0;\n            uVar31 = 0;\n            pixels_00 = extraout_ECX;\n            memset(memory_00,0,local_94);\n            if (0 < (int)image->rows) {\n              iVar18 = 0;\n              uVar1 = 0;\n              do {\n                iVar18 = iVar18 + 1;\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00);\n                uVar1 = uVar1 + sVar14;\n              } while (iVar18 < (int)image->rows);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            sVar14 = image->columns;\n            local_a4 = memory_00 + sVar14 * 3;\n            if (0 < (int)image->rows) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar18 = 0;\n              uVar1 = 0;\n              while (uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0) {\n                sVar14 = image->columns;\n                puVar19 = memory_00 + sVar14;\n                puVar21 = puVar19 + sVar14;\n                PVar8 = image->alpha_trait;\n                local_9c = puVar19;\n                local_90 = puVar21;\n                local_8c = memory_00;\n                if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }\n                if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);\n                uVar1 = uVar1 + sVar14;\n                if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;\n                iVar18 = iVar18 + 1;\n                bVar25 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar25;\n                if ((int)image->rows <= iVar18) break;\n                sVar14 = image->columns;\n              }\nLAB_002792ae:\n              if ((uVar1 & 1) != 0) {\n                WriteBlobByte(image,'\0');\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(image,0xff);\n        TellBlob(image);\n        MVar27 = SeekBlob(image,0x200,0);\n        WriteBlobMSBShort(image,(ushort)MVar27);\n        RelinquishMagickMemory(memory_00);\n        RelinquishMagickMemory(pIVar12);\n        RelinquishMagickMemory(memory);\n        CloseBlob(image);\n        MVar11 = MagickTrue;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(pIVar12);\n    }\n    if (memory != (ExceptionInfo *)0x0) {\n      RelinquishMagickMemory(memory);\n    }\n    ThrowMagickException\n              (exception,"coders/pict.c","WritePICTImage",0x710,ErrorException,\n               "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n    p_Var6 = (_Image *)image_info->adjoin;\n    pIVar12 = image;\n    while (pIVar17 = pIVar12, p_Var6 != (_Image *)0x0) {\n      p_Var6 = pIVar17->previous;\n      pIVar12 = p_Var6;\n      image = pIVar17;\n    }\n  }\n  else {\n    ThrowMagickException\n              (exception,"coders/pict.c","WritePICTImage",0x6bc,ImageError,\n               "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename);\n    if (image_info->adjoin != MagickFalse) {\n      pIVar12 = image->previous;\n      while (pIVar17 = pIVar12, pIVar17 != (Image *)0x0) {\n        image = pIVar17;\n        pIVar12 = pIVar17->previous;\n      }\n    }\n  }\nLAB_00278720:\n  CloseBlob(image);\n  MVar11 = MagickFalse;\nLAB_0027872e:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return MVar11;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "double *pdVar2;" primitive_type (pointer_declarator "*pdVar2" * identifier) ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "double dVar5;" primitive_type identifier ;) (declaration "_Image *p_Var6;" type_identifier (pointer_declarator "*p_Var6" * identifier) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "PixelTrait PVar8;" type_identifier identifier ;) (declaration "PixelChannelMap *pPVar9;" type_identifier (pointer_declarator "*pPVar9" * identifier) ;) (declaration "ushort value;" type_identifier identifier ;) (declaration "ushort value_00;" type_identifier identifier ;) (declaration "ushort uVar10;" type_identifier identifier ;) (declaration "MagickBooleanType MVar11;" type_identifier identifier ;) (declaration "ExceptionInfo *memory;" type_identifier (pointer_declarator "*memory" * identifier) ;) (declaration "Image *pIVar12;" type_identifier (pointer_declarator "*pIVar12" * identifier) ;) (declaration "undefined1 *memory_00;" type_identifier (pointer_declarator "*memory_00" * identifier) ;) (declaration "StringInfo *pSVar13;" type_identifier (pointer_declarator "*pSVar13" * identifier) ;) (declaration "size_t sVar14;" primitive_type identifier ;) (declaration "ExceptionInfo *pEVar15;" type_identifier (pointer_declarator "*pEVar15" * identifier) ;) (declaration "Quantum *pQVar16;" type_identifier (pointer_declarator "*pQVar16" * identifier) ;) (declaration "Image *pIVar17;" type_identifier (pointer_declarator "*pIVar17" * identifier) ;) (declaration "ImageInfo *image_info_00;" type_identifier (pointer_declarator "*image_info_00" * identifier) ;) (declaration "ExceptionInfo *data;" type_identifier (pointer_declarator "*data" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uchar *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "undefined1 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "ExceptionInfo *extraout_ECX_00;" type_identifier (pointer_declarator "*extraout_ECX_00" * identifier) ;) (declaration "ClassType CVar20;" type_identifier identifier ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "size_t sVar22;" primitive_type identifier ;) (declaration "undefined1 uVar23;" type_identifier identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "byte bVar26;" type_identifier identifier ;) (declaration "MagickOffsetType MVar27;" type_identifier identifier ;) (declaration "undefined1 uVar28;" type_identifier identifier ;) (declaration "undefined1 uVar29;" type_identifier identifier ;) (declaration "undefined1 uVar30;" type_identifier identifier ;) (declaration "undefined2 uVar31;" type_identifier identifier ;) (declaration "undefined2 uVar32;" type_identifier identifier ;) (declaration "ExceptionInfo *pixels;" type_identifier (pointer_declarator "*pixels" * identifier) ;) (declaration "uchar *pixels_00;" type_identifier (pointer_declarator "*pixels_00" * identifier) ;) (declaration "undefined1 *local_a4;" type_identifier (pointer_declarator "*local_a4" * identifier) ;) (declaration "size_t local_a0;" primitive_type identifier ;) (declaration "undefined1 *local_9c;" type_identifier (pointer_declarator "*local_9c" * identifier) ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "size_t local_94;" primitive_type identifier ;) (declaration "undefined1 *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "undefined1 *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "ushort local_88;" type_identifier identifier ;) (declaration "ushort local_84;" type_identifier identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "size_t length;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar26 = 0;" (assignment_expression "bVar26 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x278539;" (assignment_expression "uStack_14 = 0x278539" 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 (image_info == (ImageInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");\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/pict.c",0x6b5,"WritePICTImage");\n  }" { comment (expression_statement "__assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");" (call_expression "__assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage")" identifier (argument_list "("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage")" ( (string_literal ""image_info != (const ImageInfo *) NULL"" " string_content ") , (string_literal ""coders/pict.c"" " string_content ") , number_literal , (string_literal ""WritePICTImage"" " string_content ") ))) ;) })) (if_statement "if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");\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/pict.c",0x6b6,\n                  "WritePICTImage");\n  }" { comment (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage")" identifier (argument_list "("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage")" ( (string_literal ""image_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/pict.c"" " string_content ") , number_literal , (string_literal ""WritePICTImage"" " string_content ") ))) ;) })) (if_statement "if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");\n  }" if (parenthesized_expression "(image == (Image *)0x0)" ( (binary_expression "image == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");\n  }" { comment (expression_statement "__assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");" (call_expression "__assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage")" identifier (argument_list "("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""coders/pict.c"" " string_content ") , number_literal , (string_literal ""WritePICTImage"" " string_content ") ))) ;) })) (if_statement "if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");\n  }" if (parenthesized_expression "(image->signature != 0xabacadab)" ( (binary_expression "image->signature != 0xabacadab" (field_expression "image->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");\n  }" { comment (expression_statement "__assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage")" identifier (argument_list "("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/pict.c"" " string_content ") , number_literal , (string_literal ""WritePICTImage"" " string_content ") ))) ;) })) (if_statement "if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"coders/pict.c","WritePICTImage",0x6ba,"%s",(char)image + '\x18');\n  }" if (parenthesized_expression "(image->debug != MagickFalse)" ( (binary_expression "image->debug != MagickFalse" (field_expression "image->debug" identifier -> field_identifier) != identifier) )) (compound_statement "{\n    LogMagickEvent(TraceEvent,"coders/pict.c","WritePICTImage",0x6ba,"%s",(char)image + '\x18');\n  }" { (expression_statement "LogMagickEvent(TraceEvent,"coders/pict.c","WritePICTImage",0x6ba,"%s",(char)image + '\x18');" (call_expression "LogMagickEvent(TraceEvent,"coders/pict.c","WritePICTImage",0x6ba,"%s",(char)image + '\x18')" identifier (argument_list "(TraceEvent,"coders/pict.c","WritePICTImage",0x6ba,"%s",(char)image + '\x18')" ( identifier , (string_literal ""coders/pict.c"" " string_content ") , (string_literal ""WritePICTImage"" " string_content ") , number_literal , (string_literal ""%s"" " string_content ") , (binary_expression "(char)image + '\x18'" (cast_expression "(char)image" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'\x18'" ' escape_sequence ')) ))) ;) })) (if_statement "if ((image->columns < 0x10000) && (image->rows < 0x10000)) {\n    if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }\n    if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }\n    pixels = exception;\n    MVar11 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);\n    if (MVar11 == MagickFalse) goto LAB_0027872e;\n    TransformImageColorspace(image,sRGBColorspace,exception);\n    sVar14 = image->columns;\n    dVar3 = (image->resolution).x;\n    if ((dVar3 <= DAT_002df2d0) || (dVar4 = (image->resolution).y, dVar4 <= DAT_002df2d0)) {\n      dVar4 = 0.0;\n      dVar3 = 0.0;\n    }\n    else if (image->units == PixelsPerCentimeterResolution) {\n      dVar3 = dVar3 * _DAT_002f84b0;\n      dVar4 = _DAT_002f84b0 * dVar4;\n    }\n    CVar20 = image->storage_class;\n    if ((image_info->compression == JPEGCompression) || (CVar20 == DirectClass)) {\n      local_94 = sVar14 << 2;\n      if (image->alpha_trait == UndefinedPixelTrait) {\n        local_9c._0_2_ = 3;\n        local_a0 = sVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90._0_2_ = 0x40;\n      CVar20 = DirectClass;\n      local_8c._0_2_ = 0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90._0_2_ = 0;\n      local_8c._0_2_ = 8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = sVar14;\n      local_94 = sVar14;\n    }\n    if ((0x7ffe < local_a0 - 1) || (uVar1 = local_94 + 0x100, 0x7ffe < uVar1)) {\n      ThrowMagickException\n                (exception,"coders/pict.c","WritePICTImage",0x700,ImageError,\n                 "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename);\n      p_Var6 = (_Image *)image_info->adjoin;\n      pIVar12 = image;\n      while (pIVar17 = pIVar12, p_Var6 != (_Image *)0x0) {\n        p_Var6 = pIVar17->previous;\n        pIVar12 = p_Var6;\n        image = pIVar17;\n      }\n      goto LAB_00278720;\n    }\n    sVar7 = image->rows;\n    memory = (ExceptionInfo *)AcquireQuantumMemory(0x200,1);\n    pIVar12 = (Image *)AcquireQuantumMemory(uVar1,1);\n    memory_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);\n    if ((memory == (ExceptionInfo *)0x0) || (pIVar12 == (Image *)0x0)) {\n      if (memory_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(memory_00);\n      }\n      if (pIVar12 != (Image *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (memory_00 != (undefined1 *)0x0) {\n        memset(memory_00,0,local_94);\n        memset(pIVar12,0,uVar1);\n        pEVar15 = memory;\n        for (iVar18 = 0x80; iVar18 != 0; iVar18 = iVar18 + -1) {\n          pEVar15->severity = UndefinedException;\n          pEVar15 = (ExceptionInfo *)((int)pEVar15 + (uint)bVar26 * -8 + 4);\n        }\n        pEVar15 = memory;\n        WriteBlob(image,0x200,memory);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        value_00 = (ushort)sVar7;\n        WriteBlobMSBShort(image,value_00);\n        value = (ushort)sVar14;\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBShort(image,0x11);\n        WriteBlobMSBShort(image,0x2ff);\n        WriteBlobMSBShort(image,0xc00);\n        WriteBlobMSBLong(image,0xfffe0000);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBLong(image,0);\n        pSVar13 = GetImageProfile(image,"iptc");\n        if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0x1f2);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobString(image,"8BIM");\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n        }\n        pSVar13 = GetImageProfile(image,"icc");\n        if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobMSBLong(image,0);\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          WriteBlobMSBShort(image,4);\n          WriteBlobMSBLong(image,2);\n        }\n        WriteBlobMSBShort(image,1);\n        WriteBlobMSBShort(image,10);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        if (image_info->compression == JPEGCompression) {\n          pIVar17 = CloneImage(image,0,0,MagickTrue,exception);\n          if (pIVar17 == (Image *)0x0) {\n            CloseBlob(image);\n          }\n          else {\n            image_info_00 = CloneImageInfo(image_info);\n            CopyMagickString(image_info_00->magick,"JPEG",0x1000);\n            length = 0;\n            pixels = exception;\n            data = (ExceptionInfo *)ImageToBlob(image_info_00,pIVar17,&length,exception);\n            DestroyImageInfo(image_info_00);\n            if (data != (ExceptionInfo *)0x0) {\n              DestroyImage(pIVar17);\n              WriteBlobMSBShort(image,0x8200);\n              WriteBlobMSBLong(image,length + 0x9a);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x40000000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x400000);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x566a70);\n              WriteBlobMSBLong(image,0x65670000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,1);\n              WriteBlobMSBLong(image,0x16170);\n              WriteBlobMSBLong(image,0x706c0000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,length);\n              WriteBlobMSBShort(image,1);\n              WriteBlobMSBLong(image,0xb466f74);\n              WriteBlobMSBLong(image,0x6f202d20);\n              WriteBlobMSBLong(image,0x4a504547);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x18ffff);\n              pEVar15 = data;\n              WriteBlob(image,length,data);\n              if ((length & 1) != 0) {\n                pEVar15 = extraout_ECX_00;\n                pixels = extraout_ECX_00;\n                WriteBlobByte(image,'\0');\n              }\n              RelinquishMagickMemory(data);\n              goto LAB_00278cac;\n            }\n          }\n          MVar11 = MagickFalse;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBShort(image,0x98);\n        }\n        else {\n          WriteBlobMSBShort(image,0x9a);\n          WriteBlobMSBLong(image,0xff);\n        }\n        WriteBlobMSBShort(image,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,local_84);\n        WriteBlobMSBLong(image,0);\n        dVar5 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(image,(ushort)(int)ROUND((float)dVar3 + DAT_002df2b8));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4 + dVar5));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,local_88);\n        WriteBlobMSBShort(image,(ushort)local_8c);\n        WriteBlobMSBShort(image,(ushort)local_9c);\n        WriteBlobMSBShort(image,8);\n        WriteBlobMSBLong(image,0);\n        WriteBlobMSBLong(image,0);\n        WriteBlobMSBLong(image,0);\n        uVar28 = (undefined1)((uint)exception >> 8);\n        uVar31 = (undefined2)((uint)exception >> 0x10);\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBLong(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,(short)image->colors - 1);\n          if (0 < (int)image->colors) {\n            iVar18 = 0;\n            iVar24 = 0;\n            do {\n              WriteBlobMSBShort(image,(ushort)iVar24);\n              dVar3 = *(double *)((int)&image->colormap->red + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->green + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->blue + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              iVar24 = iVar24 + 1;\n              iVar18 = iVar18 + 0x50;\n              WriteBlobMSBShort(image,uVar10);\n            } while (iVar24 < (int)image->colors);\n          }\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar1 = 0;\n          if (0 < (int)image->rows) {\n            do {\n              uVar29 = (char)exception;\n              uVar30 = uVar28;\n              uVar32 = uVar31;\n              pQVar16 = GetVirtualPixels(image,0,local_a0,image->columns,1,exception);\n              if (pQVar16 == (Quantum *)0x0) break;\n              sVar14 = image->columns;\n              if (0 < (int)sVar14) {\n                sVar7 = image->number_channels;\n                pPVar9 = image->channel_map;\n                puVar19 = memory_00;\n                do {\n                  while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }\n                  *puVar19 = 0;\n                  puVar19 = puVar19 + 1;\n                  pQVar16 = pQVar16 + sVar7;\n                } while (puVar19 != memory_00 + sVar14);\n              }\nLAB_00279a01:\n              sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels);\n              uVar1 = uVar1 + sVar14;\n              if ((image->previous == (_Image *)0x0) &&\n                 (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse)) break;\n              local_a0 = local_a0 + 1;\n              bVar25 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar25;\n            } while ((int)local_a0 < (int)image->rows);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          if (image_info->compression == JPEGCompression) {\n            uVar28 = 0;\n            uVar29 = 0;\n            uVar31 = 0;\n            pixels_00 = extraout_ECX;\n            memset(memory_00,0,local_94);\n            if (0 < (int)image->rows) {\n              iVar18 = 0;\n              uVar1 = 0;\n              do {\n                iVar18 = iVar18 + 1;\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00);\n                uVar1 = uVar1 + sVar14;\n              } while (iVar18 < (int)image->rows);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            sVar14 = image->columns;\n            local_a4 = memory_00 + sVar14 * 3;\n            if (0 < (int)image->rows) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar18 = 0;\n              uVar1 = 0;\n              while (uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0) {\n                sVar14 = image->columns;\n                puVar19 = memory_00 + sVar14;\n                puVar21 = puVar19 + sVar14;\n                PVar8 = image->alpha_trait;\n                local_9c = puVar19;\n                local_90 = puVar21;\n                local_8c = memory_00;\n                if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }\n                if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);\n                uVar1 = uVar1 + sVar14;\n                if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;\n                iVar18 = iVar18 + 1;\n                bVar25 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar25;\n                if ((int)image->rows <= iVar18) break;\n                sVar14 = image->columns;\n              }\nLAB_002792ae:\n              if ((uVar1 & 1) != 0) {\n                WriteBlobByte(image,'\0');\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(image,0xff);\n        TellBlob(image);\n        MVar27 = SeekBlob(image,0x200,0);\n        WriteBlobMSBShort(image,(ushort)MVar27);\n        RelinquishMagickMemory(memory_00);\n        RelinquishMagickMemory(pIVar12);\n        RelinquishMagickMemory(memory);\n        CloseBlob(image);\n        MVar11 = MagickTrue;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(pIVar12);\n    }\n    if (memory != (ExceptionInfo *)0x0) {\n      RelinquishMagickMemory(memory);\n    }\n    ThrowMagickException\n              (exception,"coders/pict.c","WritePICTImage",0x710,ErrorException,\n               "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n    p_Var6 = (_Image *)image_info->adjoin;\n    pIVar12 = image;\n    while (pIVar17 = pIVar12, p_Var6 != (_Image *)0x0) {\n      p_Var6 = pIVar17->previous;\n      pIVar12 = p_Var6;\n      image = pIVar17;\n    }\n  }\n  else {\n    ThrowMagickException\n              (exception,"coders/pict.c","WritePICTImage",0x6bc,ImageError,\n               "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename);\n    if (image_info->adjoin != MagickFalse) {\n      pIVar12 = image->previous;\n      while (pIVar17 = pIVar12, pIVar17 != (Image *)0x0) {\n        image = pIVar17;\n        pIVar12 = pIVar17->previous;\n      }\n    }\n  }" if (parenthesized_expression "((image->columns < 0x10000) && (image->rows < 0x10000))" ( (binary_expression "(image->columns < 0x10000) && (image->rows < 0x10000)" (parenthesized_expression "(image->columns < 0x10000)" ( (binary_expression "image->columns < 0x10000" (field_expression "image->columns" identifier -> field_identifier) < number_literal) )) && (parenthesized_expression "(image->rows < 0x10000)" ( (binary_expression "image->rows < 0x10000" (field_expression "image->rows" identifier -> field_identifier) < number_literal) ))) )) (compound_statement "{\n    if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }\n    if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }\n    pixels = exception;\n    MVar11 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);\n    if (MVar11 == MagickFalse) goto LAB_0027872e;\n    TransformImageColorspace(image,sRGBColorspace,exception);\n    sVar14 = image->columns;\n    dVar3 = (image->resolution).x;\n    if ((dVar3 <= DAT_002df2d0) || (dVar4 = (image->resolution).y, dVar4 <= DAT_002df2d0)) {\n      dVar4 = 0.0;\n      dVar3 = 0.0;\n    }\n    else if (image->units == PixelsPerCentimeterResolution) {\n      dVar3 = dVar3 * _DAT_002f84b0;\n      dVar4 = _DAT_002f84b0 * dVar4;\n    }\n    CVar20 = image->storage_class;\n    if ((image_info->compression == JPEGCompression) || (CVar20 == DirectClass)) {\n      local_94 = sVar14 << 2;\n      if (image->alpha_trait == UndefinedPixelTrait) {\n        local_9c._0_2_ = 3;\n        local_a0 = sVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90._0_2_ = 0x40;\n      CVar20 = DirectClass;\n      local_8c._0_2_ = 0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90._0_2_ = 0;\n      local_8c._0_2_ = 8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = sVar14;\n      local_94 = sVar14;\n    }\n    if ((0x7ffe < local_a0 - 1) || (uVar1 = local_94 + 0x100, 0x7ffe < uVar1)) {\n      ThrowMagickException\n                (exception,"coders/pict.c","WritePICTImage",0x700,ImageError,\n                 "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename);\n      p_Var6 = (_Image *)image_info->adjoin;\n      pIVar12 = image;\n      while (pIVar17 = pIVar12, p_Var6 != (_Image *)0x0) {\n        p_Var6 = pIVar17->previous;\n        pIVar12 = p_Var6;\n        image = pIVar17;\n      }\n      goto LAB_00278720;\n    }\n    sVar7 = image->rows;\n    memory = (ExceptionInfo *)AcquireQuantumMemory(0x200,1);\n    pIVar12 = (Image *)AcquireQuantumMemory(uVar1,1);\n    memory_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);\n    if ((memory == (ExceptionInfo *)0x0) || (pIVar12 == (Image *)0x0)) {\n      if (memory_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(memory_00);\n      }\n      if (pIVar12 != (Image *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (memory_00 != (undefined1 *)0x0) {\n        memset(memory_00,0,local_94);\n        memset(pIVar12,0,uVar1);\n        pEVar15 = memory;\n        for (iVar18 = 0x80; iVar18 != 0; iVar18 = iVar18 + -1) {\n          pEVar15->severity = UndefinedException;\n          pEVar15 = (ExceptionInfo *)((int)pEVar15 + (uint)bVar26 * -8 + 4);\n        }\n        pEVar15 = memory;\n        WriteBlob(image,0x200,memory);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        value_00 = (ushort)sVar7;\n        WriteBlobMSBShort(image,value_00);\n        value = (ushort)sVar14;\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBShort(image,0x11);\n        WriteBlobMSBShort(image,0x2ff);\n        WriteBlobMSBShort(image,0xc00);\n        WriteBlobMSBLong(image,0xfffe0000);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBLong(image,0);\n        pSVar13 = GetImageProfile(image,"iptc");\n        if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0x1f2);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobString(image,"8BIM");\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n        }\n        pSVar13 = GetImageProfile(image,"icc");\n        if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobMSBLong(image,0);\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          WriteBlobMSBShort(image,4);\n          WriteBlobMSBLong(image,2);\n        }\n        WriteBlobMSBShort(image,1);\n        WriteBlobMSBShort(image,10);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        if (image_info->compression == JPEGCompression) {\n          pIVar17 = CloneImage(image,0,0,MagickTrue,exception);\n          if (pIVar17 == (Image *)0x0) {\n            CloseBlob(image);\n          }\n          else {\n            image_info_00 = CloneImageInfo(image_info);\n            CopyMagickString(image_info_00->magick,"JPEG",0x1000);\n            length = 0;\n            pixels = exception;\n            data = (ExceptionInfo *)ImageToBlob(image_info_00,pIVar17,&length,exception);\n            DestroyImageInfo(image_info_00);\n            if (data != (ExceptionInfo *)0x0) {\n              DestroyImage(pIVar17);\n              WriteBlobMSBShort(image,0x8200);\n              WriteBlobMSBLong(image,length + 0x9a);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x40000000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x400000);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x566a70);\n              WriteBlobMSBLong(image,0x65670000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,1);\n              WriteBlobMSBLong(image,0x16170);\n              WriteBlobMSBLong(image,0x706c0000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,length);\n              WriteBlobMSBShort(image,1);\n              WriteBlobMSBLong(image,0xb466f74);\n              WriteBlobMSBLong(image,0x6f202d20);\n              WriteBlobMSBLong(image,0x4a504547);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x18ffff);\n              pEVar15 = data;\n              WriteBlob(image,length,data);\n              if ((length & 1) != 0) {\n                pEVar15 = extraout_ECX_00;\n                pixels = extraout_ECX_00;\n                WriteBlobByte(image,'\0');\n              }\n              RelinquishMagickMemory(data);\n              goto LAB_00278cac;\n            }\n          }\n          MVar11 = MagickFalse;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBShort(image,0x98);\n        }\n        else {\n          WriteBlobMSBShort(image,0x9a);\n          WriteBlobMSBLong(image,0xff);\n        }\n        WriteBlobMSBShort(image,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,local_84);\n        WriteBlobMSBLong(image,0);\n        dVar5 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(image,(ushort)(int)ROUND((float)dVar3 + DAT_002df2b8));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4 + dVar5));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,local_88);\n        WriteBlobMSBShort(image,(ushort)local_8c);\n        WriteBlobMSBShort(image,(ushort)local_9c);\n        WriteBlobMSBShort(image,8);\n        WriteBlobMSBLong(image,0);\n        WriteBlobMSBLong(image,0);\n        WriteBlobMSBLong(image,0);\n        uVar28 = (undefined1)((uint)exception >> 8);\n        uVar31 = (undefined2)((uint)exception >> 0x10);\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBLong(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,(short)image->colors - 1);\n          if (0 < (int)image->colors) {\n            iVar18 = 0;\n            iVar24 = 0;\n            do {\n              WriteBlobMSBShort(image,(ushort)iVar24);\n              dVar3 = *(double *)((int)&image->colormap->red + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->green + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->blue + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              iVar24 = iVar24 + 1;\n              iVar18 = iVar18 + 0x50;\n              WriteBlobMSBShort(image,uVar10);\n            } while (iVar24 < (int)image->colors);\n          }\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar1 = 0;\n          if (0 < (int)image->rows) {\n            do {\n              uVar29 = (char)exception;\n              uVar30 = uVar28;\n              uVar32 = uVar31;\n              pQVar16 = GetVirtualPixels(image,0,local_a0,image->columns,1,exception);\n              if (pQVar16 == (Quantum *)0x0) break;\n              sVar14 = image->columns;\n              if (0 < (int)sVar14) {\n                sVar7 = image->number_channels;\n                pPVar9 = image->channel_map;\n                puVar19 = memory_00;\n                do {\n                  while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }\n                  *puVar19 = 0;\n                  puVar19 = puVar19 + 1;\n                  pQVar16 = pQVar16 + sVar7;\n                } while (puVar19 != memory_00 + sVar14);\n              }\nLAB_00279a01:\n              sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels);\n              uVar1 = uVar1 + sVar14;\n              if ((image->previous == (_Image *)0x0) &&\n                 (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse)) break;\n              local_a0 = local_a0 + 1;\n              bVar25 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar25;\n            } while ((int)local_a0 < (int)image->rows);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          if (image_info->compression == JPEGCompression) {\n            uVar28 = 0;\n            uVar29 = 0;\n            uVar31 = 0;\n            pixels_00 = extraout_ECX;\n            memset(memory_00,0,local_94);\n            if (0 < (int)image->rows) {\n              iVar18 = 0;\n              uVar1 = 0;\n              do {\n                iVar18 = iVar18 + 1;\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00);\n                uVar1 = uVar1 + sVar14;\n              } while (iVar18 < (int)image->rows);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            sVar14 = image->columns;\n            local_a4 = memory_00 + sVar14 * 3;\n            if (0 < (int)image->rows) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar18 = 0;\n              uVar1 = 0;\n              while (uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0) {\n                sVar14 = image->columns;\n                puVar19 = memory_00 + sVar14;\n                puVar21 = puVar19 + sVar14;\n                PVar8 = image->alpha_trait;\n                local_9c = puVar19;\n                local_90 = puVar21;\n                local_8c = memory_00;\n                if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }\n                if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);\n                uVar1 = uVar1 + sVar14;\n                if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;\n                iVar18 = iVar18 + 1;\n                bVar25 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar25;\n                if ((int)image->rows <= iVar18) break;\n                sVar14 = image->columns;\n              }\nLAB_002792ae:\n              if ((uVar1 & 1) != 0) {\n                WriteBlobByte(image,'\0');\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(image,0xff);\n        TellBlob(image);\n        MVar27 = SeekBlob(image,0x200,0);\n        WriteBlobMSBShort(image,(ushort)MVar27);\n        RelinquishMagickMemory(memory_00);\n        RelinquishMagickMemory(pIVar12);\n        RelinquishMagickMemory(memory);\n        CloseBlob(image);\n        MVar11 = MagickTrue;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(pIVar12);\n    }\n    if (memory != (ExceptionInfo *)0x0) {\n      RelinquishMagickMemory(memory);\n    }\n    ThrowMagickException\n              (exception,"coders/pict.c","WritePICTImage",0x710,ErrorException,\n               "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n    p_Var6 = (_Image *)image_info->adjoin;\n    pIVar12 = image;\n    while (pIVar17 = pIVar12, p_Var6 != (_Image *)0x0) {\n      p_Var6 = pIVar17->previous;\n      pIVar12 = p_Var6;\n      image = pIVar17;\n    }\n  }" { (if_statement "if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\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/pict.c",0x6bd,"WritePICTImage");\n    }" { comment (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage")" identifier (argument_list "("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage")" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""coders/pict.c"" " string_content ") , number_literal , (string_literal ""WritePICTImage"" " string_content ") ))) ;) })) (if_statement "if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\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/pict.c",0x6be,\n                    "WritePICTImage");\n    }" { comment (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage")" identifier (argument_list "("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage")" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/pict.c"" " string_content ") , number_literal , (string_literal ""WritePICTImage"" " string_content ") ))) ;) })) (expression_statement "pixels = exception;" (assignment_expression "pixels = exception" identifier = identifier) ;) (expression_statement "MVar11 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);" (assignment_expression "MVar11 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception)" identifier = (call_expression "OpenBlob(image_info,image,WriteBinaryBlobMode,exception)" identifier (argument_list "(image_info,image,WriteBinaryBlobMode,exception)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (MVar11 == MagickFalse) goto LAB_0027872e;" if (parenthesized_expression "(MVar11 == MagickFalse)" ( (binary_expression "MVar11 == MagickFalse" identifier == identifier) )) (goto_statement "goto LAB_0027872e;" goto statement_identifier ;)) (expression_statement "TransformImageColorspace(image,sRGBColorspace,exception);" (call_expression "TransformImageColorspace(image,sRGBColorspace,exception)" identifier (argument_list "(image,sRGBColorspace,exception)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar14 = image->columns;" (assignment_expression "sVar14 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (expression_statement "dVar3 = (image->resolution).x;" (assignment_expression "dVar3 = (image->resolution).x" identifier = (field_expression "(image->resolution).x" (parenthesized_expression "(image->resolution)" ( (field_expression "image->resolution" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((dVar3 <= DAT_002df2d0) || (dVar4 = (image->resolution).y, dVar4 <= DAT_002df2d0)) {\n      dVar4 = 0.0;\n      dVar3 = 0.0;\n    }\n    else if (image->units == PixelsPerCentimeterResolution) {\n      dVar3 = dVar3 * _DAT_002f84b0;\n      dVar4 = _DAT_002f84b0 * dVar4;\n    }" if (parenthesized_expression "((dVar3 <= DAT_002df2d0) || (dVar4 = (image->resolution).y, dVar4 <= DAT_002df2d0))" ( (binary_expression "(dVar3 <= DAT_002df2d0) || (dVar4 = (image->resolution).y, dVar4 <= DAT_002df2d0)" (parenthesized_expression "(dVar3 <= DAT_002df2d0)" ( (binary_expression "dVar3 <= DAT_002df2d0" identifier <= identifier) )) || (parenthesized_expression "(dVar4 = (image->resolution).y, dVar4 <= DAT_002df2d0)" ( (comma_expression "dVar4 = (image->resolution).y, dVar4 <= DAT_002df2d0" (assignment_expression "dVar4 = (image->resolution).y" identifier = (field_expression "(image->resolution).y" (parenthesized_expression "(image->resolution)" ( (field_expression "image->resolution" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "dVar4 <= DAT_002df2d0" identifier <= identifier)) ))) )) (compound_statement "{\n      dVar4 = 0.0;\n      dVar3 = 0.0;\n    }" { (expression_statement "dVar4 = 0.0;" (assignment_expression "dVar4 = 0.0" identifier = number_literal) ;) (expression_statement "dVar3 = 0.0;" (assignment_expression "dVar3 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (image->units == PixelsPerCentimeterResolution) {\n      dVar3 = dVar3 * _DAT_002f84b0;\n      dVar4 = _DAT_002f84b0 * dVar4;\n    }" else (if_statement "if (image->units == PixelsPerCentimeterResolution) {\n      dVar3 = dVar3 * _DAT_002f84b0;\n      dVar4 = _DAT_002f84b0 * dVar4;\n    }" if (parenthesized_expression "(image->units == PixelsPerCentimeterResolution)" ( (binary_expression "image->units == PixelsPerCentimeterResolution" (field_expression "image->units" identifier -> field_identifier) == identifier) )) (compound_statement "{\n      dVar3 = dVar3 * _DAT_002f84b0;\n      dVar4 = _DAT_002f84b0 * dVar4;\n    }" { (expression_statement "dVar3 = dVar3 * _DAT_002f84b0;" (assignment_expression "dVar3 = dVar3 * _DAT_002f84b0" identifier = (binary_expression "dVar3 * _DAT_002f84b0" identifier * identifier)) ;) (expression_statement "dVar4 = _DAT_002f84b0 * dVar4;" (assignment_expression "dVar4 = _DAT_002f84b0 * dVar4" identifier = (binary_expression "_DAT_002f84b0 * dVar4" identifier * identifier)) ;) })))) (expression_statement "CVar20 = image->storage_class;" (assignment_expression "CVar20 = image->storage_class" identifier = (field_expression "image->storage_class" identifier -> field_identifier)) ;) (if_statement "if ((image_info->compression == JPEGCompression) || (CVar20 == DirectClass)) {\n      local_94 = sVar14 << 2;\n      if (image->alpha_trait == UndefinedPixelTrait) {\n        local_9c._0_2_ = 3;\n        local_a0 = sVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90._0_2_ = 0x40;\n      CVar20 = DirectClass;\n      local_8c._0_2_ = 0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90._0_2_ = 0;\n      local_8c._0_2_ = 8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = sVar14;\n      local_94 = sVar14;\n    }" if (parenthesized_expression "((image_info->compression == JPEGCompression) || (CVar20 == DirectClass))" ( (binary_expression "(image_info->compression == JPEGCompression) || (CVar20 == DirectClass)" (parenthesized_expression "(image_info->compression == JPEGCompression)" ( (binary_expression "image_info->compression == JPEGCompression" (field_expression "image_info->compression" identifier -> field_identifier) == identifier) )) || (parenthesized_expression "(CVar20 == DirectClass)" ( (binary_expression "CVar20 == DirectClass" identifier == identifier) ))) )) (compound_statement "{\n      local_94 = sVar14 << 2;\n      if (image->alpha_trait == UndefinedPixelTrait) {\n        local_9c._0_2_ = 3;\n        local_a0 = sVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90._0_2_ = 0x40;\n      CVar20 = DirectClass;\n      local_8c._0_2_ = 0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }" { (expression_statement "local_94 = sVar14 << 2;" (assignment_expression "local_94 = sVar14 << 2" identifier = (binary_expression "sVar14 << 2" identifier << number_literal)) ;) (if_statement "if (image->alpha_trait == UndefinedPixelTrait) {\n        local_9c._0_2_ = 3;\n        local_a0 = sVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }" if (parenthesized_expression "(image->alpha_trait == UndefinedPixelTrait)" ( (binary_expression "image->alpha_trait == UndefinedPixelTrait" (field_expression "image->alpha_trait" identifier -> field_identifier) == identifier) )) (compound_statement "{\n        local_9c._0_2_ = 3;\n        local_a0 = sVar14 * 3;\n      }" { (expression_statement "local_9c._0_2_ = 3;" (assignment_expression "local_9c._0_2_ = 3" (field_expression "local_9c._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_a0 = sVar14 * 3;" (assignment_expression "local_a0 = sVar14 * 3" identifier = (binary_expression "sVar14 * 3" identifier * number_literal)) ;) }) (else_clause "else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }" else (compound_statement "{\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }" { (expression_statement "local_9c._0_2_ = 4;" (assignment_expression "local_9c._0_2_ = 4" (field_expression "local_9c._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_a0 = local_94;" (assignment_expression "local_a0 = local_94" identifier = identifier) ;) }))) (expression_statement "local_90._0_2_ = 0x40;" (assignment_expression "local_90._0_2_ = 0x40" (field_expression "local_90._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "CVar20 = DirectClass;" (assignment_expression "CVar20 = DirectClass" identifier = identifier) ;) (expression_statement "local_8c._0_2_ = 0x20;" (assignment_expression "local_8c._0_2_ = 0x20" (field_expression "local_8c._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_88 = 0x10;" (assignment_expression "local_88 = 0x10" identifier = number_literal) ;) (expression_statement "local_84 = 4;" (assignment_expression "local_84 = 4" identifier = number_literal) ;) }) (else_clause "else {\n      local_90._0_2_ = 0;\n      local_8c._0_2_ = 8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = sVar14;\n      local_94 = sVar14;\n    }" else (compound_statement "{\n      local_90._0_2_ = 0;\n      local_8c._0_2_ = 8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = sVar14;\n      local_94 = sVar14;\n    }" { (expression_statement "local_90._0_2_ = 0;" (assignment_expression "local_90._0_2_ = 0" (field_expression "local_90._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_8c._0_2_ = 8;" (assignment_expression "local_8c._0_2_ = 8" (field_expression "local_8c._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "local_9c._0_2_ = 1;" (assignment_expression "local_9c._0_2_ = 1" (field_expression "local_9c._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_a0 = sVar14;" (assignment_expression "local_a0 = sVar14" identifier = identifier) ;) (expression_statement "local_94 = sVar14;" (assignment_expression "local_94 = sVar14" identifier = identifier) ;) }))) (if_statement "if ((0x7ffe < local_a0 - 1) || (uVar1 = local_94 + 0x100, 0x7ffe < uVar1)) {\n      ThrowMagickException\n                (exception,"coders/pict.c","WritePICTImage",0x700,ImageError,\n                 "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename);\n      p_Var6 = (_Image *)image_info->adjoin;\n      pIVar12 = image;\n      while (pIVar17 = pIVar12, p_Var6 != (_Image *)0x0) {\n        p_Var6 = pIVar17->previous;\n        pIVar12 = p_Var6;\n        image = pIVar17;\n      }\n      goto LAB_00278720;\n    }" if (parenthesized_expression "((0x7ffe < local_a0 - 1) || (uVar1 = local_94 + 0x100, 0x7ffe < uVar1))" ( (binary_expression "(0x7ffe < local_a0 - 1) || (uVar1 = local_94 + 0x100, 0x7ffe < uVar1)" (parenthesized_expression "(0x7ffe < local_a0 - 1)" ( (binary_expression "0x7ffe < local_a0 - 1" number_literal < (binary_expression "local_a0 - 1" identifier - number_literal)) )) || (parenthesized_expression "(uVar1 = local_94 + 0x100, 0x7ffe < uVar1)" ( (comma_expression "uVar1 = local_94 + 0x100, 0x7ffe < uVar1" (assignment_expression "uVar1 = local_94 + 0x100" identifier = (binary_expression "local_94 + 0x100" identifier + number_literal)) , (binary_expression "0x7ffe < uVar1" number_literal < identifier)) ))) )) (compound_statement "{\n      ThrowMagickException\n                (exception,"coders/pict.c","WritePICTImage",0x700,ImageError,\n                 "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename);\n      p_Var6 = (_Image *)image_info->adjoin;\n      pIVar12 = image;\n      while (pIVar17 = pIVar12, p_Var6 != (_Image *)0x0) {\n        p_Var6 = pIVar17->previous;\n        pIVar12 = p_Var6;\n        image = pIVar17;\n      }\n      goto LAB_00278720;\n    }" { (expression_statement "ThrowMagickException\n                (exception,"coders/pict.c","WritePICTImage",0x700,ImageError,\n                 "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename);" (call_expression "ThrowMagickException\n                (exception,"coders/pict.c","WritePICTImage",0x700,ImageError,\n                 "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename)" identifier (argument_list "(exception,"coders/pict.c","WritePICTImage",0x700,ImageError,\n                 "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename)" ( identifier , (string_literal ""coders/pict.c"" " string_content ") , (string_literal ""WritePICTImage"" " string_content ") , number_literal , identifier , (string_literal ""WidthOrHeightExceedsLimit"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , number_literal , (field_expression "image->filename" identifier -> field_identifier) ))) ;) (expression_statement "p_Var6 = (_Image *)image_info->adjoin;" (assignment_expression "p_Var6 = (_Image *)image_info->adjoin" identifier = (cast_expression "(_Image *)image_info->adjoin" ( (type_descriptor "_Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "image_info->adjoin" identifier -> field_identifier))) ;) (expression_statement "pIVar12 = image;" (assignment_expression "pIVar12 = image" identifier = identifier) ;) (while_statement "while (pIVar17 = pIVar12, p_Var6 != (_Image *)0x0) {\n        p_Var6 = pIVar17->previous;\n        pIVar12 = p_Var6;\n        image = pIVar17;\n      }" while (parenthesized_expression "(pIVar17 = pIVar12, p_Var6 != (_Image *)0x0)" ( (comma_expression "pIVar17 = pIVar12, p_Var6 != (_Image *)0x0" (assignment_expression "pIVar17 = pIVar12" identifier = identifier) , (binary_expression "p_Var6 != (_Image *)0x0" identifier != (cast_expression "(_Image *)0x0" ( (type_descriptor "_Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        p_Var6 = pIVar17->previous;\n        pIVar12 = p_Var6;\n        image = pIVar17;\n      }" { (expression_statement "p_Var6 = pIVar17->previous;" (assignment_expression "p_Var6 = pIVar17->previous" identifier = (field_expression "pIVar17->previous" identifier -> field_identifier)) ;) (expression_statement "pIVar12 = p_Var6;" (assignment_expression "pIVar12 = p_Var6" identifier = identifier) ;) (expression_statement "image = pIVar17;" (assignment_expression "image = pIVar17" identifier = identifier) ;) })) (goto_statement "goto LAB_00278720;" goto statement_identifier ;) })) (expression_statement "sVar7 = image->rows;" (assignment_expression "sVar7 = image->rows" identifier = (field_expression "image->rows" identifier -> field_identifier)) ;) (expression_statement "memory = (ExceptionInfo *)AcquireQuantumMemory(0x200,1);" (assignment_expression "memory = (ExceptionInfo *)AcquireQuantumMemory(0x200,1)" identifier = (cast_expression "(ExceptionInfo *)AcquireQuantumMemory(0x200,1)" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(0x200,1)" identifier (argument_list "(0x200,1)" ( number_literal , number_literal ))))) ;) (expression_statement "pIVar12 = (Image *)AcquireQuantumMemory(uVar1,1);" (assignment_expression "pIVar12 = (Image *)AcquireQuantumMemory(uVar1,1)" identifier = (cast_expression "(Image *)AcquireQuantumMemory(uVar1,1)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(uVar1,1)" identifier (argument_list "(uVar1,1)" ( identifier , number_literal ))))) ;) (expression_statement "memory_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);" (assignment_expression "memory_00 = (undefined1 *)AcquireQuantumMemory(local_94,1)" identifier = (cast_expression "(undefined1 *)AcquireQuantumMemory(local_94,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(local_94,1)" identifier (argument_list "(local_94,1)" ( identifier , number_literal ))))) ;) (if_statement "if ((memory == (ExceptionInfo *)0x0) || (pIVar12 == (Image *)0x0)) {\n      if (memory_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(memory_00);\n      }\n      if (pIVar12 != (Image *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (memory_00 != (undefined1 *)0x0) {\n        memset(memory_00,0,local_94);\n        memset(pIVar12,0,uVar1);\n        pEVar15 = memory;\n        for (iVar18 = 0x80; iVar18 != 0; iVar18 = iVar18 + -1) {\n          pEVar15->severity = UndefinedException;\n          pEVar15 = (ExceptionInfo *)((int)pEVar15 + (uint)bVar26 * -8 + 4);\n        }\n        pEVar15 = memory;\n        WriteBlob(image,0x200,memory);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        value_00 = (ushort)sVar7;\n        WriteBlobMSBShort(image,value_00);\n        value = (ushort)sVar14;\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBShort(image,0x11);\n        WriteBlobMSBShort(image,0x2ff);\n        WriteBlobMSBShort(image,0xc00);\n        WriteBlobMSBLong(image,0xfffe0000);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBLong(image,0);\n        pSVar13 = GetImageProfile(image,"iptc");\n        if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0x1f2);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobString(image,"8BIM");\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n        }\n        pSVar13 = GetImageProfile(image,"icc");\n        if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobMSBLong(image,0);\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          WriteBlobMSBShort(image,4);\n          WriteBlobMSBLong(image,2);\n        }\n        WriteBlobMSBShort(image,1);\n        WriteBlobMSBShort(image,10);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        if (image_info->compression == JPEGCompression) {\n          pIVar17 = CloneImage(image,0,0,MagickTrue,exception);\n          if (pIVar17 == (Image *)0x0) {\n            CloseBlob(image);\n          }\n          else {\n            image_info_00 = CloneImageInfo(image_info);\n            CopyMagickString(image_info_00->magick,"JPEG",0x1000);\n            length = 0;\n            pixels = exception;\n            data = (ExceptionInfo *)ImageToBlob(image_info_00,pIVar17,&length,exception);\n            DestroyImageInfo(image_info_00);\n            if (data != (ExceptionInfo *)0x0) {\n              DestroyImage(pIVar17);\n              WriteBlobMSBShort(image,0x8200);\n              WriteBlobMSBLong(image,length + 0x9a);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x40000000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x400000);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x566a70);\n              WriteBlobMSBLong(image,0x65670000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,1);\n              WriteBlobMSBLong(image,0x16170);\n              WriteBlobMSBLong(image,0x706c0000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,length);\n              WriteBlobMSBShort(image,1);\n              WriteBlobMSBLong(image,0xb466f74);\n              WriteBlobMSBLong(image,0x6f202d20);\n              WriteBlobMSBLong(image,0x4a504547);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x18ffff);\n              pEVar15 = data;\n              WriteBlob(image,length,data);\n              if ((length & 1) != 0) {\n                pEVar15 = extraout_ECX_00;\n                pixels = extraout_ECX_00;\n                WriteBlobByte(image,'\0');\n              }\n              RelinquishMagickMemory(data);\n              goto LAB_00278cac;\n            }\n          }\n          MVar11 = MagickFalse;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBShort(image,0x98);\n        }\n        else {\n          WriteBlobMSBShort(image,0x9a);\n          WriteBlobMSBLong(image,0xff);\n        }\n        WriteBlobMSBShort(image,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,local_84);\n        WriteBlobMSBLong(image,0);\n        dVar5 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(image,(ushort)(int)ROUND((float)dVar3 + DAT_002df2b8));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4 + dVar5));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,local_88);\n        WriteBlobMSBShort(image,(ushort)local_8c);\n        WriteBlobMSBShort(image,(ushort)local_9c);\n        WriteBlobMSBShort(image,8);\n        WriteBlobMSBLong(image,0);\n        WriteBlobMSBLong(image,0);\n        WriteBlobMSBLong(image,0);\n        uVar28 = (undefined1)((uint)exception >> 8);\n        uVar31 = (undefined2)((uint)exception >> 0x10);\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBLong(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,(short)image->colors - 1);\n          if (0 < (int)image->colors) {\n            iVar18 = 0;\n            iVar24 = 0;\n            do {\n              WriteBlobMSBShort(image,(ushort)iVar24);\n              dVar3 = *(double *)((int)&image->colormap->red + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->green + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->blue + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              iVar24 = iVar24 + 1;\n              iVar18 = iVar18 + 0x50;\n              WriteBlobMSBShort(image,uVar10);\n            } while (iVar24 < (int)image->colors);\n          }\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar1 = 0;\n          if (0 < (int)image->rows) {\n            do {\n              uVar29 = (char)exception;\n              uVar30 = uVar28;\n              uVar32 = uVar31;\n              pQVar16 = GetVirtualPixels(image,0,local_a0,image->columns,1,exception);\n              if (pQVar16 == (Quantum *)0x0) break;\n              sVar14 = image->columns;\n              if (0 < (int)sVar14) {\n                sVar7 = image->number_channels;\n                pPVar9 = image->channel_map;\n                puVar19 = memory_00;\n                do {\n                  while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }\n                  *puVar19 = 0;\n                  puVar19 = puVar19 + 1;\n                  pQVar16 = pQVar16 + sVar7;\n                } while (puVar19 != memory_00 + sVar14);\n              }\nLAB_00279a01:\n              sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels);\n              uVar1 = uVar1 + sVar14;\n              if ((image->previous == (_Image *)0x0) &&\n                 (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse)) break;\n              local_a0 = local_a0 + 1;\n              bVar25 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar25;\n            } while ((int)local_a0 < (int)image->rows);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          if (image_info->compression == JPEGCompression) {\n            uVar28 = 0;\n            uVar29 = 0;\n            uVar31 = 0;\n            pixels_00 = extraout_ECX;\n            memset(memory_00,0,local_94);\n            if (0 < (int)image->rows) {\n              iVar18 = 0;\n              uVar1 = 0;\n              do {\n                iVar18 = iVar18 + 1;\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00);\n                uVar1 = uVar1 + sVar14;\n              } while (iVar18 < (int)image->rows);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            sVar14 = image->columns;\n            local_a4 = memory_00 + sVar14 * 3;\n            if (0 < (int)image->rows) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar18 = 0;\n              uVar1 = 0;\n              while (uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0) {\n                sVar14 = image->columns;\n                puVar19 = memory_00 + sVar14;\n                puVar21 = puVar19 + sVar14;\n                PVar8 = image->alpha_trait;\n                local_9c = puVar19;\n                local_90 = puVar21;\n                local_8c = memory_00;\n                if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }\n                if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);\n                uVar1 = uVar1 + sVar14;\n                if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;\n                iVar18 = iVar18 + 1;\n                bVar25 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar25;\n                if ((int)image->rows <= iVar18) break;\n                sVar14 = image->columns;\n              }\nLAB_002792ae:\n              if ((uVar1 & 1) != 0) {\n                WriteBlobByte(image,'\0');\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(image,0xff);\n        TellBlob(image);\n        MVar27 = SeekBlob(image,0x200,0);\n        WriteBlobMSBShort(image,(ushort)MVar27);\n        RelinquishMagickMemory(memory_00);\n        RelinquishMagickMemory(pIVar12);\n        RelinquishMagickMemory(memory);\n        CloseBlob(image);\n        MVar11 = MagickTrue;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(pIVar12);\n    }" if (parenthesized_expression "((memory == (ExceptionInfo *)0x0) || (pIVar12 == (Image *)0x0))" ( (binary_expression "(memory == (ExceptionInfo *)0x0) || (pIVar12 == (Image *)0x0)" (parenthesized_expression "(memory == (ExceptionInfo *)0x0)" ( (binary_expression "memory == (ExceptionInfo *)0x0" identifier == (cast_expression "(ExceptionInfo *)0x0" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pIVar12 == (Image *)0x0)" ( (binary_expression "pIVar12 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      if (memory_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(memory_00);\n      }\n      if (pIVar12 != (Image *)0x0) goto LAB_0027924d;\n    }" { (if_statement "if (memory_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(memory_00);\n      }" if (parenthesized_expression "(memory_00 != (undefined1 *)0x0)" ( (binary_expression "memory_00 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        RelinquishMagickMemory(memory_00);\n      }" { (expression_statement "RelinquishMagickMemory(memory_00);" (call_expression "RelinquishMagickMemory(memory_00)" identifier (argument_list "(memory_00)" ( identifier ))) ;) })) (if_statement "if (pIVar12 != (Image *)0x0) goto LAB_0027924d;" if (parenthesized_expression "(pIVar12 != (Image *)0x0)" ( (binary_expression "pIVar12 != (Image *)0x0" identifier != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0027924d;" goto statement_identifier ;)) }) (else_clause "else {\n      if (memory_00 != (undefined1 *)0x0) {\n        memset(memory_00,0,local_94);\n        memset(pIVar12,0,uVar1);\n        pEVar15 = memory;\n        for (iVar18 = 0x80; iVar18 != 0; iVar18 = iVar18 + -1) {\n          pEVar15->severity = UndefinedException;\n          pEVar15 = (ExceptionInfo *)((int)pEVar15 + (uint)bVar26 * -8 + 4);\n        }\n        pEVar15 = memory;\n        WriteBlob(image,0x200,memory);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        value_00 = (ushort)sVar7;\n        WriteBlobMSBShort(image,value_00);\n        value = (ushort)sVar14;\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBShort(image,0x11);\n        WriteBlobMSBShort(image,0x2ff);\n        WriteBlobMSBShort(image,0xc00);\n        WriteBlobMSBLong(image,0xfffe0000);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBLong(image,0);\n        pSVar13 = GetImageProfile(image,"iptc");\n        if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0x1f2);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobString(image,"8BIM");\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n        }\n        pSVar13 = GetImageProfile(image,"icc");\n        if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobMSBLong(image,0);\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          WriteBlobMSBShort(image,4);\n          WriteBlobMSBLong(image,2);\n        }\n        WriteBlobMSBShort(image,1);\n        WriteBlobMSBShort(image,10);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        if (image_info->compression == JPEGCompression) {\n          pIVar17 = CloneImage(image,0,0,MagickTrue,exception);\n          if (pIVar17 == (Image *)0x0) {\n            CloseBlob(image);\n          }\n          else {\n            image_info_00 = CloneImageInfo(image_info);\n            CopyMagickString(image_info_00->magick,"JPEG",0x1000);\n            length = 0;\n            pixels = exception;\n            data = (ExceptionInfo *)ImageToBlob(image_info_00,pIVar17,&length,exception);\n            DestroyImageInfo(image_info_00);\n            if (data != (ExceptionInfo *)0x0) {\n              DestroyImage(pIVar17);\n              WriteBlobMSBShort(image,0x8200);\n              WriteBlobMSBLong(image,length + 0x9a);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x40000000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x400000);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x566a70);\n              WriteBlobMSBLong(image,0x65670000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,1);\n              WriteBlobMSBLong(image,0x16170);\n              WriteBlobMSBLong(image,0x706c0000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,length);\n              WriteBlobMSBShort(image,1);\n              WriteBlobMSBLong(image,0xb466f74);\n              WriteBlobMSBLong(image,0x6f202d20);\n              WriteBlobMSBLong(image,0x4a504547);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x18ffff);\n              pEVar15 = data;\n              WriteBlob(image,length,data);\n              if ((length & 1) != 0) {\n                pEVar15 = extraout_ECX_00;\n                pixels = extraout_ECX_00;\n                WriteBlobByte(image,'\0');\n              }\n              RelinquishMagickMemory(data);\n              goto LAB_00278cac;\n            }\n          }\n          MVar11 = MagickFalse;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBShort(image,0x98);\n        }\n        else {\n          WriteBlobMSBShort(image,0x9a);\n          WriteBlobMSBLong(image,0xff);\n        }\n        WriteBlobMSBShort(image,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,local_84);\n        WriteBlobMSBLong(image,0);\n        dVar5 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(image,(ushort)(int)ROUND((float)dVar3 + DAT_002df2b8));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4 + dVar5));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,local_88);\n        WriteBlobMSBShort(image,(ushort)local_8c);\n        WriteBlobMSBShort(image,(ushort)local_9c);\n        WriteBlobMSBShort(image,8);\n        WriteBlobMSBLong(image,0);\n        WriteBlobMSBLong(image,0);\n        WriteBlobMSBLong(image,0);\n        uVar28 = (undefined1)((uint)exception >> 8);\n        uVar31 = (undefined2)((uint)exception >> 0x10);\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBLong(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,(short)image->colors - 1);\n          if (0 < (int)image->colors) {\n            iVar18 = 0;\n            iVar24 = 0;\n            do {\n              WriteBlobMSBShort(image,(ushort)iVar24);\n              dVar3 = *(double *)((int)&image->colormap->red + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->green + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->blue + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              iVar24 = iVar24 + 1;\n              iVar18 = iVar18 + 0x50;\n              WriteBlobMSBShort(image,uVar10);\n            } while (iVar24 < (int)image->colors);\n          }\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar1 = 0;\n          if (0 < (int)image->rows) {\n            do {\n              uVar29 = (char)exception;\n              uVar30 = uVar28;\n              uVar32 = uVar31;\n              pQVar16 = GetVirtualPixels(image,0,local_a0,image->columns,1,exception);\n              if (pQVar16 == (Quantum *)0x0) break;\n              sVar14 = image->columns;\n              if (0 < (int)sVar14) {\n                sVar7 = image->number_channels;\n                pPVar9 = image->channel_map;\n                puVar19 = memory_00;\n                do {\n                  while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }\n                  *puVar19 = 0;\n                  puVar19 = puVar19 + 1;\n                  pQVar16 = pQVar16 + sVar7;\n                } while (puVar19 != memory_00 + sVar14);\n              }\nLAB_00279a01:\n              sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels);\n              uVar1 = uVar1 + sVar14;\n              if ((image->previous == (_Image *)0x0) &&\n                 (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse)) break;\n              local_a0 = local_a0 + 1;\n              bVar25 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar25;\n            } while ((int)local_a0 < (int)image->rows);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          if (image_info->compression == JPEGCompression) {\n            uVar28 = 0;\n            uVar29 = 0;\n            uVar31 = 0;\n            pixels_00 = extraout_ECX;\n            memset(memory_00,0,local_94);\n            if (0 < (int)image->rows) {\n              iVar18 = 0;\n              uVar1 = 0;\n              do {\n                iVar18 = iVar18 + 1;\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00);\n                uVar1 = uVar1 + sVar14;\n              } while (iVar18 < (int)image->rows);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            sVar14 = image->columns;\n            local_a4 = memory_00 + sVar14 * 3;\n            if (0 < (int)image->rows) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar18 = 0;\n              uVar1 = 0;\n              while (uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0) {\n                sVar14 = image->columns;\n                puVar19 = memory_00 + sVar14;\n                puVar21 = puVar19 + sVar14;\n                PVar8 = image->alpha_trait;\n                local_9c = puVar19;\n                local_90 = puVar21;\n                local_8c = memory_00;\n                if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }\n                if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);\n                uVar1 = uVar1 + sVar14;\n                if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;\n                iVar18 = iVar18 + 1;\n                bVar25 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar25;\n                if ((int)image->rows <= iVar18) break;\n                sVar14 = image->columns;\n              }\nLAB_002792ae:\n              if ((uVar1 & 1) != 0) {\n                WriteBlobByte(image,'\0');\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(image,0xff);\n        TellBlob(image);\n        MVar27 = SeekBlob(image,0x200,0);\n        WriteBlobMSBShort(image,(ushort)MVar27);\n        RelinquishMagickMemory(memory_00);\n        RelinquishMagickMemory(pIVar12);\n        RelinquishMagickMemory(memory);\n        CloseBlob(image);\n        MVar11 = MagickTrue;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(pIVar12);\n    }" else (compound_statement "{\n      if (memory_00 != (undefined1 *)0x0) {\n        memset(memory_00,0,local_94);\n        memset(pIVar12,0,uVar1);\n        pEVar15 = memory;\n        for (iVar18 = 0x80; iVar18 != 0; iVar18 = iVar18 + -1) {\n          pEVar15->severity = UndefinedException;\n          pEVar15 = (ExceptionInfo *)((int)pEVar15 + (uint)bVar26 * -8 + 4);\n        }\n        pEVar15 = memory;\n        WriteBlob(image,0x200,memory);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        value_00 = (ushort)sVar7;\n        WriteBlobMSBShort(image,value_00);\n        value = (ushort)sVar14;\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBShort(image,0x11);\n        WriteBlobMSBShort(image,0x2ff);\n        WriteBlobMSBShort(image,0xc00);\n        WriteBlobMSBLong(image,0xfffe0000);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBLong(image,0);\n        pSVar13 = GetImageProfile(image,"iptc");\n        if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0x1f2);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobString(image,"8BIM");\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n        }\n        pSVar13 = GetImageProfile(image,"icc");\n        if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobMSBLong(image,0);\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          WriteBlobMSBShort(image,4);\n          WriteBlobMSBLong(image,2);\n        }\n        WriteBlobMSBShort(image,1);\n        WriteBlobMSBShort(image,10);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        if (image_info->compression == JPEGCompression) {\n          pIVar17 = CloneImage(image,0,0,MagickTrue,exception);\n          if (pIVar17 == (Image *)0x0) {\n            CloseBlob(image);\n          }\n          else {\n            image_info_00 = CloneImageInfo(image_info);\n            CopyMagickString(image_info_00->magick,"JPEG",0x1000);\n            length = 0;\n            pixels = exception;\n            data = (ExceptionInfo *)ImageToBlob(image_info_00,pIVar17,&length,exception);\n            DestroyImageInfo(image_info_00);\n            if (data != (ExceptionInfo *)0x0) {\n              DestroyImage(pIVar17);\n              WriteBlobMSBShort(image,0x8200);\n              WriteBlobMSBLong(image,length + 0x9a);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x40000000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x400000);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x566a70);\n              WriteBlobMSBLong(image,0x65670000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,1);\n              WriteBlobMSBLong(image,0x16170);\n              WriteBlobMSBLong(image,0x706c0000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,length);\n              WriteBlobMSBShort(image,1);\n              WriteBlobMSBLong(image,0xb466f74);\n              WriteBlobMSBLong(image,0x6f202d20);\n              WriteBlobMSBLong(image,0x4a504547);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x18ffff);\n              pEVar15 = data;\n              WriteBlob(image,length,data);\n              if ((length & 1) != 0) {\n                pEVar15 = extraout_ECX_00;\n                pixels = extraout_ECX_00;\n                WriteBlobByte(image,'\0');\n              }\n              RelinquishMagickMemory(data);\n              goto LAB_00278cac;\n            }\n          }\n          MVar11 = MagickFalse;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBShort(image,0x98);\n        }\n        else {\n          WriteBlobMSBShort(image,0x9a);\n          WriteBlobMSBLong(image,0xff);\n        }\n        WriteBlobMSBShort(image,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,local_84);\n        WriteBlobMSBLong(image,0);\n        dVar5 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(image,(ushort)(int)ROUND((float)dVar3 + DAT_002df2b8));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4 + dVar5));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,local_88);\n        WriteBlobMSBShort(image,(ushort)local_8c);\n        WriteBlobMSBShort(image,(ushort)local_9c);\n        WriteBlobMSBShort(image,8);\n        WriteBlobMSBLong(image,0);\n        WriteBlobMSBLong(image,0);\n        WriteBlobMSBLong(image,0);\n        uVar28 = (undefined1)((uint)exception >> 8);\n        uVar31 = (undefined2)((uint)exception >> 0x10);\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBLong(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,(short)image->colors - 1);\n          if (0 < (int)image->colors) {\n            iVar18 = 0;\n            iVar24 = 0;\n            do {\n              WriteBlobMSBShort(image,(ushort)iVar24);\n              dVar3 = *(double *)((int)&image->colormap->red + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->green + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->blue + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              iVar24 = iVar24 + 1;\n              iVar18 = iVar18 + 0x50;\n              WriteBlobMSBShort(image,uVar10);\n            } while (iVar24 < (int)image->colors);\n          }\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar1 = 0;\n          if (0 < (int)image->rows) {\n            do {\n              uVar29 = (char)exception;\n              uVar30 = uVar28;\n              uVar32 = uVar31;\n              pQVar16 = GetVirtualPixels(image,0,local_a0,image->columns,1,exception);\n              if (pQVar16 == (Quantum *)0x0) break;\n              sVar14 = image->columns;\n              if (0 < (int)sVar14) {\n                sVar7 = image->number_channels;\n                pPVar9 = image->channel_map;\n                puVar19 = memory_00;\n                do {\n                  while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }\n                  *puVar19 = 0;\n                  puVar19 = puVar19 + 1;\n                  pQVar16 = pQVar16 + sVar7;\n                } while (puVar19 != memory_00 + sVar14);\n              }\nLAB_00279a01:\n              sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels);\n              uVar1 = uVar1 + sVar14;\n              if ((image->previous == (_Image *)0x0) &&\n                 (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse)) break;\n              local_a0 = local_a0 + 1;\n              bVar25 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar25;\n            } while ((int)local_a0 < (int)image->rows);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          if (image_info->compression == JPEGCompression) {\n            uVar28 = 0;\n            uVar29 = 0;\n            uVar31 = 0;\n            pixels_00 = extraout_ECX;\n            memset(memory_00,0,local_94);\n            if (0 < (int)image->rows) {\n              iVar18 = 0;\n              uVar1 = 0;\n              do {\n                iVar18 = iVar18 + 1;\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00);\n                uVar1 = uVar1 + sVar14;\n              } while (iVar18 < (int)image->rows);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            sVar14 = image->columns;\n            local_a4 = memory_00 + sVar14 * 3;\n            if (0 < (int)image->rows) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar18 = 0;\n              uVar1 = 0;\n              while (uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0) {\n                sVar14 = image->columns;\n                puVar19 = memory_00 + sVar14;\n                puVar21 = puVar19 + sVar14;\n                PVar8 = image->alpha_trait;\n                local_9c = puVar19;\n                local_90 = puVar21;\n                local_8c = memory_00;\n                if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }\n                if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);\n                uVar1 = uVar1 + sVar14;\n                if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;\n                iVar18 = iVar18 + 1;\n                bVar25 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar25;\n                if ((int)image->rows <= iVar18) break;\n                sVar14 = image->columns;\n              }\nLAB_002792ae:\n              if ((uVar1 & 1) != 0) {\n                WriteBlobByte(image,'\0');\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(image,0xff);\n        TellBlob(image);\n        MVar27 = SeekBlob(image,0x200,0);\n        WriteBlobMSBShort(image,(ushort)MVar27);\n        RelinquishMagickMemory(memory_00);\n        RelinquishMagickMemory(pIVar12);\n        RelinquishMagickMemory(memory);\n        CloseBlob(image);\n        MVar11 = MagickTrue;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(pIVar12);\n    }" { (if_statement "if (memory_00 != (undefined1 *)0x0) {\n        memset(memory_00,0,local_94);\n        memset(pIVar12,0,uVar1);\n        pEVar15 = memory;\n        for (iVar18 = 0x80; iVar18 != 0; iVar18 = iVar18 + -1) {\n          pEVar15->severity = UndefinedException;\n          pEVar15 = (ExceptionInfo *)((int)pEVar15 + (uint)bVar26 * -8 + 4);\n        }\n        pEVar15 = memory;\n        WriteBlob(image,0x200,memory);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        value_00 = (ushort)sVar7;\n        WriteBlobMSBShort(image,value_00);\n        value = (ushort)sVar14;\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBShort(image,0x11);\n        WriteBlobMSBShort(image,0x2ff);\n        WriteBlobMSBShort(image,0xc00);\n        WriteBlobMSBLong(image,0xfffe0000);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBLong(image,0);\n        pSVar13 = GetImageProfile(image,"iptc");\n        if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0x1f2);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobString(image,"8BIM");\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n        }\n        pSVar13 = GetImageProfile(image,"icc");\n        if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobMSBLong(image,0);\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          WriteBlobMSBShort(image,4);\n          WriteBlobMSBLong(image,2);\n        }\n        WriteBlobMSBShort(image,1);\n        WriteBlobMSBShort(image,10);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        if (image_info->compression == JPEGCompression) {\n          pIVar17 = CloneImage(image,0,0,MagickTrue,exception);\n          if (pIVar17 == (Image *)0x0) {\n            CloseBlob(image);\n          }\n          else {\n            image_info_00 = CloneImageInfo(image_info);\n            CopyMagickString(image_info_00->magick,"JPEG",0x1000);\n            length = 0;\n            pixels = exception;\n            data = (ExceptionInfo *)ImageToBlob(image_info_00,pIVar17,&length,exception);\n            DestroyImageInfo(image_info_00);\n            if (data != (ExceptionInfo *)0x0) {\n              DestroyImage(pIVar17);\n              WriteBlobMSBShort(image,0x8200);\n              WriteBlobMSBLong(image,length + 0x9a);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x40000000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x400000);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x566a70);\n              WriteBlobMSBLong(image,0x65670000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,1);\n              WriteBlobMSBLong(image,0x16170);\n              WriteBlobMSBLong(image,0x706c0000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,length);\n              WriteBlobMSBShort(image,1);\n              WriteBlobMSBLong(image,0xb466f74);\n              WriteBlobMSBLong(image,0x6f202d20);\n              WriteBlobMSBLong(image,0x4a504547);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x18ffff);\n              pEVar15 = data;\n              WriteBlob(image,length,data);\n              if ((length & 1) != 0) {\n                pEVar15 = extraout_ECX_00;\n                pixels = extraout_ECX_00;\n                WriteBlobByte(image,'\0');\n              }\n              RelinquishMagickMemory(data);\n              goto LAB_00278cac;\n            }\n          }\n          MVar11 = MagickFalse;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBShort(image,0x98);\n        }\n        else {\n          WriteBlobMSBShort(image,0x9a);\n          WriteBlobMSBLong(image,0xff);\n        }\n        WriteBlobMSBShort(image,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,local_84);\n        WriteBlobMSBLong(image,0);\n        dVar5 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(image,(ushort)(int)ROUND((float)dVar3 + DAT_002df2b8));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4 + dVar5));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,local_88);\n        WriteBlobMSBShort(image,(ushort)local_8c);\n        WriteBlobMSBShort(image,(ushort)local_9c);\n        WriteBlobMSBShort(image,8);\n        WriteBlobMSBLong(image,0);\n        WriteBlobMSBLong(image,0);\n        WriteBlobMSBLong(image,0);\n        uVar28 = (undefined1)((uint)exception >> 8);\n        uVar31 = (undefined2)((uint)exception >> 0x10);\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBLong(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,(short)image->colors - 1);\n          if (0 < (int)image->colors) {\n            iVar18 = 0;\n            iVar24 = 0;\n            do {\n              WriteBlobMSBShort(image,(ushort)iVar24);\n              dVar3 = *(double *)((int)&image->colormap->red + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->green + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->blue + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              iVar24 = iVar24 + 1;\n              iVar18 = iVar18 + 0x50;\n              WriteBlobMSBShort(image,uVar10);\n            } while (iVar24 < (int)image->colors);\n          }\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar1 = 0;\n          if (0 < (int)image->rows) {\n            do {\n              uVar29 = (char)exception;\n              uVar30 = uVar28;\n              uVar32 = uVar31;\n              pQVar16 = GetVirtualPixels(image,0,local_a0,image->columns,1,exception);\n              if (pQVar16 == (Quantum *)0x0) break;\n              sVar14 = image->columns;\n              if (0 < (int)sVar14) {\n                sVar7 = image->number_channels;\n                pPVar9 = image->channel_map;\n                puVar19 = memory_00;\n                do {\n                  while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }\n                  *puVar19 = 0;\n                  puVar19 = puVar19 + 1;\n                  pQVar16 = pQVar16 + sVar7;\n                } while (puVar19 != memory_00 + sVar14);\n              }\nLAB_00279a01:\n              sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels);\n              uVar1 = uVar1 + sVar14;\n              if ((image->previous == (_Image *)0x0) &&\n                 (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse)) break;\n              local_a0 = local_a0 + 1;\n              bVar25 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar25;\n            } while ((int)local_a0 < (int)image->rows);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          if (image_info->compression == JPEGCompression) {\n            uVar28 = 0;\n            uVar29 = 0;\n            uVar31 = 0;\n            pixels_00 = extraout_ECX;\n            memset(memory_00,0,local_94);\n            if (0 < (int)image->rows) {\n              iVar18 = 0;\n              uVar1 = 0;\n              do {\n                iVar18 = iVar18 + 1;\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00);\n                uVar1 = uVar1 + sVar14;\n              } while (iVar18 < (int)image->rows);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            sVar14 = image->columns;\n            local_a4 = memory_00 + sVar14 * 3;\n            if (0 < (int)image->rows) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar18 = 0;\n              uVar1 = 0;\n              while (uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0) {\n                sVar14 = image->columns;\n                puVar19 = memory_00 + sVar14;\n                puVar21 = puVar19 + sVar14;\n                PVar8 = image->alpha_trait;\n                local_9c = puVar19;\n                local_90 = puVar21;\n                local_8c = memory_00;\n                if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }\n                if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);\n                uVar1 = uVar1 + sVar14;\n                if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;\n                iVar18 = iVar18 + 1;\n                bVar25 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar25;\n                if ((int)image->rows <= iVar18) break;\n                sVar14 = image->columns;\n              }\nLAB_002792ae:\n              if ((uVar1 & 1) != 0) {\n                WriteBlobByte(image,'\0');\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(image,0xff);\n        TellBlob(image);\n        MVar27 = SeekBlob(image,0x200,0);\n        WriteBlobMSBShort(image,(ushort)MVar27);\n        RelinquishMagickMemory(memory_00);\n        RelinquishMagickMemory(pIVar12);\n        RelinquishMagickMemory(memory);\n        CloseBlob(image);\n        MVar11 = MagickTrue;\n        goto LAB_0027872e;\n      }" if (parenthesized_expression "(memory_00 != (undefined1 *)0x0)" ( (binary_expression "memory_00 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        memset(memory_00,0,local_94);\n        memset(pIVar12,0,uVar1);\n        pEVar15 = memory;\n        for (iVar18 = 0x80; iVar18 != 0; iVar18 = iVar18 + -1) {\n          pEVar15->severity = UndefinedException;\n          pEVar15 = (ExceptionInfo *)((int)pEVar15 + (uint)bVar26 * -8 + 4);\n        }\n        pEVar15 = memory;\n        WriteBlob(image,0x200,memory);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        value_00 = (ushort)sVar7;\n        WriteBlobMSBShort(image,value_00);\n        value = (ushort)sVar14;\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBShort(image,0x11);\n        WriteBlobMSBShort(image,0x2ff);\n        WriteBlobMSBShort(image,0xc00);\n        WriteBlobMSBLong(image,0xfffe0000);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBLong(image,0);\n        pSVar13 = GetImageProfile(image,"iptc");\n        if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0x1f2);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobString(image,"8BIM");\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n        }\n        pSVar13 = GetImageProfile(image,"icc");\n        if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobMSBLong(image,0);\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          WriteBlobMSBShort(image,4);\n          WriteBlobMSBLong(image,2);\n        }\n        WriteBlobMSBShort(image,1);\n        WriteBlobMSBShort(image,10);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        if (image_info->compression == JPEGCompression) {\n          pIVar17 = CloneImage(image,0,0,MagickTrue,exception);\n          if (pIVar17 == (Image *)0x0) {\n            CloseBlob(image);\n          }\n          else {\n            image_info_00 = CloneImageInfo(image_info);\n            CopyMagickString(image_info_00->magick,"JPEG",0x1000);\n            length = 0;\n            pixels = exception;\n            data = (ExceptionInfo *)ImageToBlob(image_info_00,pIVar17,&length,exception);\n            DestroyImageInfo(image_info_00);\n            if (data != (ExceptionInfo *)0x0) {\n              DestroyImage(pIVar17);\n              WriteBlobMSBShort(image,0x8200);\n              WriteBlobMSBLong(image,length + 0x9a);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x40000000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x400000);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x566a70);\n              WriteBlobMSBLong(image,0x65670000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,1);\n              WriteBlobMSBLong(image,0x16170);\n              WriteBlobMSBLong(image,0x706c0000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,length);\n              WriteBlobMSBShort(image,1);\n              WriteBlobMSBLong(image,0xb466f74);\n              WriteBlobMSBLong(image,0x6f202d20);\n              WriteBlobMSBLong(image,0x4a504547);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x18ffff);\n              pEVar15 = data;\n              WriteBlob(image,length,data);\n              if ((length & 1) != 0) {\n                pEVar15 = extraout_ECX_00;\n                pixels = extraout_ECX_00;\n                WriteBlobByte(image,'\0');\n              }\n              RelinquishMagickMemory(data);\n              goto LAB_00278cac;\n            }\n          }\n          MVar11 = MagickFalse;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBShort(image,0x98);\n        }\n        else {\n          WriteBlobMSBShort(image,0x9a);\n          WriteBlobMSBLong(image,0xff);\n        }\n        WriteBlobMSBShort(image,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,value_00);\n        WriteBlobMSBShort(image,value);\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,local_84);\n        WriteBlobMSBLong(image,0);\n        dVar5 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(image,(ushort)(int)ROUND((float)dVar3 + DAT_002df2b8));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4 + dVar5));\n        WriteBlobMSBShort(image,0);\n        WriteBlobMSBShort(image,local_88);\n        WriteBlobMSBShort(image,(ushort)local_8c);\n        WriteBlobMSBShort(image,(ushort)local_9c);\n        WriteBlobMSBShort(image,8);\n        WriteBlobMSBLong(image,0);\n        WriteBlobMSBLong(image,0);\n        WriteBlobMSBLong(image,0);\n        uVar28 = (undefined1)((uint)exception >> 8);\n        uVar31 = (undefined2)((uint)exception >> 0x10);\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBLong(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,(short)image->colors - 1);\n          if (0 < (int)image->colors) {\n            iVar18 = 0;\n            iVar24 = 0;\n            do {\n              WriteBlobMSBShort(image,(ushort)iVar24);\n              dVar3 = *(double *)((int)&image->colormap->red + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->green + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->blue + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              iVar24 = iVar24 + 1;\n              iVar18 = iVar18 + 0x50;\n              WriteBlobMSBShort(image,uVar10);\n            } while (iVar24 < (int)image->colors);\n          }\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar1 = 0;\n          if (0 < (int)image->rows) {\n            do {\n              uVar29 = (char)exception;\n              uVar30 = uVar28;\n              uVar32 = uVar31;\n              pQVar16 = GetVirtualPixels(image,0,local_a0,image->columns,1,exception);\n              if (pQVar16 == (Quantum *)0x0) break;\n              sVar14 = image->columns;\n              if (0 < (int)sVar14) {\n                sVar7 = image->number_channels;\n                pPVar9 = image->channel_map;\n                puVar19 = memory_00;\n                do {\n                  while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }\n                  *puVar19 = 0;\n                  puVar19 = puVar19 + 1;\n                  pQVar16 = pQVar16 + sVar7;\n                } while (puVar19 != memory_00 + sVar14);\n              }\nLAB_00279a01:\n              sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels);\n              uVar1 = uVar1 + sVar14;\n              if ((image->previous == (_Image *)0x0) &&\n                 (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse)) break;\n              local_a0 = local_a0 + 1;\n              bVar25 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar25;\n            } while ((int)local_a0 < (int)image->rows);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          if (image_info->compression == JPEGCompression) {\n            uVar28 = 0;\n            uVar29 = 0;\n            uVar31 = 0;\n            pixels_00 = extraout_ECX;\n            memset(memory_00,0,local_94);\n            if (0 < (int)image->rows) {\n              iVar18 = 0;\n              uVar1 = 0;\n              do {\n                iVar18 = iVar18 + 1;\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00);\n                uVar1 = uVar1 + sVar14;\n              } while (iVar18 < (int)image->rows);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            sVar14 = image->columns;\n            local_a4 = memory_00 + sVar14 * 3;\n            if (0 < (int)image->rows) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar18 = 0;\n              uVar1 = 0;\n              while (uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0) {\n                sVar14 = image->columns;\n                puVar19 = memory_00 + sVar14;\n                puVar21 = puVar19 + sVar14;\n                PVar8 = image->alpha_trait;\n                local_9c = puVar19;\n                local_90 = puVar21;\n                local_8c = memory_00;\n                if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }\n                if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);\n                uVar1 = uVar1 + sVar14;\n                if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;\n                iVar18 = iVar18 + 1;\n                bVar25 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar25;\n                if ((int)image->rows <= iVar18) break;\n                sVar14 = image->columns;\n              }\nLAB_002792ae:\n              if ((uVar1 & 1) != 0) {\n                WriteBlobByte(image,'\0');\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(image,0xff);\n        TellBlob(image);\n        MVar27 = SeekBlob(image,0x200,0);\n        WriteBlobMSBShort(image,(ushort)MVar27);\n        RelinquishMagickMemory(memory_00);\n        RelinquishMagickMemory(pIVar12);\n        RelinquishMagickMemory(memory);\n        CloseBlob(image);\n        MVar11 = MagickTrue;\n        goto LAB_0027872e;\n      }" { (expression_statement "memset(memory_00,0,local_94);" (call_expression "memset(memory_00,0,local_94)" identifier (argument_list "(memory_00,0,local_94)" ( identifier , number_literal , identifier ))) ;) (expression_statement "memset(pIVar12,0,uVar1);" (call_expression "memset(pIVar12,0,uVar1)" identifier (argument_list "(pIVar12,0,uVar1)" ( identifier , number_literal , identifier ))) ;) (expression_statement "pEVar15 = memory;" (assignment_expression "pEVar15 = memory" identifier = identifier) ;) (for_statement "for (iVar18 = 0x80; iVar18 != 0; iVar18 = iVar18 + -1) {\n          pEVar15->severity = UndefinedException;\n          pEVar15 = (ExceptionInfo *)((int)pEVar15 + (uint)bVar26 * -8 + 4);\n        }" for ( (assignment_expression "iVar18 = 0x80" identifier = number_literal) ; (binary_expression "iVar18 != 0" identifier != number_literal) ; (assignment_expression "iVar18 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ) (compound_statement "{\n          pEVar15->severity = UndefinedException;\n          pEVar15 = (ExceptionInfo *)((int)pEVar15 + (uint)bVar26 * -8 + 4);\n        }" { (expression_statement "pEVar15->severity = UndefinedException;" (assignment_expression "pEVar15->severity = UndefinedException" (field_expression "pEVar15->severity" identifier -> field_identifier) = identifier) ;) (expression_statement "pEVar15 = (ExceptionInfo *)((int)pEVar15 + (uint)bVar26 * -8 + 4);" (assignment_expression "pEVar15 = (ExceptionInfo *)((int)pEVar15 + (uint)bVar26 * -8 + 4)" identifier = (cast_expression "(ExceptionInfo *)((int)pEVar15 + (uint)bVar26 * -8 + 4)" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar15 + (uint)bVar26 * -8 + 4)" ( (binary_expression "(int)pEVar15 + (uint)bVar26 * -8 + 4" (binary_expression "(int)pEVar15 + (uint)bVar26 * -8" (cast_expression "(int)pEVar15" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar26 * -8" (cast_expression "(uint)bVar26" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "pEVar15 = memory;" (assignment_expression "pEVar15 = memory" identifier = identifier) ;) (expression_statement "WriteBlob(image,0x200,memory);" (call_expression "WriteBlob(image,0x200,memory)" identifier (argument_list "(image,0x200,memory)" ( identifier , number_literal , identifier ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "value_00 = (ushort)sVar7;" (assignment_expression "value_00 = (ushort)sVar7" identifier = (cast_expression "(ushort)sVar7" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "WriteBlobMSBShort(image,value_00);" (call_expression "WriteBlobMSBShort(image,value_00)" identifier (argument_list "(image,value_00)" ( identifier , identifier ))) ;) (expression_statement "value = (ushort)sVar14;" (assignment_expression "value = (ushort)sVar14" identifier = (cast_expression "(ushort)sVar14" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "WriteBlobMSBShort(image,value);" (call_expression "WriteBlobMSBShort(image,value)" identifier (argument_list "(image,value)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(image,0x11);" (call_expression "WriteBlobMSBShort(image,0x11)" identifier (argument_list "(image,0x11)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0x2ff);" (call_expression "WriteBlobMSBShort(image,0x2ff)" identifier (argument_list "(image,0x2ff)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0xc00);" (call_expression "WriteBlobMSBShort(image,0xc00)" identifier (argument_list "(image,0xc00)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0xfffe0000);" (call_expression "WriteBlobMSBLong(image,0xfffe0000)" identifier (argument_list "(image,0xfffe0000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));" (call_expression "WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3))" identifier (argument_list "(image,(ushort)(int)ROUND(dVar3))" ( identifier , (cast_expression "(ushort)(int)ROUND(dVar3)" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(int)ROUND(dVar3)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));" (call_expression "WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4))" identifier (argument_list "(image,(ushort)(int)ROUND(dVar4))" ( identifier , (cast_expression "(ushort)(int)ROUND(dVar4)" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(int)ROUND(dVar4)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar4)" identifier (argument_list "(dVar4)" ( identifier ))))) ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,value_00);" (call_expression "WriteBlobMSBShort(image,value_00)" identifier (argument_list "(image,value_00)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(image,value);" (call_expression "WriteBlobMSBShort(image,value)" identifier (argument_list "(image,value)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "pSVar13 = GetImageProfile(image,"iptc");" (assignment_expression "pSVar13 = GetImageProfile(image,"iptc")" identifier = (call_expression "GetImageProfile(image,"iptc")" identifier (argument_list "(image,"iptc")" ( identifier , (string_literal ""iptc"" " string_content ") )))) ;) (if_statement "if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0x1f2);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobString(image,"8BIM");\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n        }" if (parenthesized_expression "(pSVar13 != (StringInfo *)0x0)" ( (binary_expression "pSVar13 != (StringInfo *)0x0" identifier != (cast_expression "(StringInfo *)0x0" ( (type_descriptor "StringInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0x1f2);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobString(image,"8BIM");\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n        }" { (expression_statement "WriteBlobMSBShort(image,0xa1);" (call_expression "WriteBlobMSBShort(image,0xa1)" identifier (argument_list "(image,0xa1)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0x1f2);" (call_expression "WriteBlobMSBShort(image,0x1f2)" identifier (argument_list "(image,0x1f2)" ( identifier , number_literal ))) ;) (expression_statement "sVar14 = GetStringInfoLength(pSVar13);" (assignment_expression "sVar14 = GetStringInfoLength(pSVar13)" identifier = (call_expression "GetStringInfoLength(pSVar13)" identifier (argument_list "(pSVar13)" ( identifier )))) ;) (expression_statement "WriteBlobMSBShort(image,(short)sVar14 + 4);" (call_expression "WriteBlobMSBShort(image,(short)sVar14 + 4)" identifier (argument_list "(image,(short)sVar14 + 4)" ( identifier , (binary_expression "(short)sVar14 + 4" (cast_expression "(short)sVar14" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) + number_literal) ))) ;) (expression_statement "WriteBlobString(image,"8BIM");" (call_expression "WriteBlobString(image,"8BIM")" identifier (argument_list "(image,"8BIM")" ( identifier , (string_literal ""8BIM"" " string_content ") ))) ;) (expression_statement "pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);" (assignment_expression "pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13)" identifier = (cast_expression "(ExceptionInfo *)GetStringInfoDatum(pSVar13)" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "GetStringInfoDatum(pSVar13)" identifier (argument_list "(pSVar13)" ( identifier ))))) ;) (expression_statement "sVar14 = GetStringInfoLength(pSVar13);" (assignment_expression "sVar14 = GetStringInfoLength(pSVar13)" identifier = (call_expression "GetStringInfoLength(pSVar13)" identifier (argument_list "(pSVar13)" ( identifier )))) ;) (expression_statement "WriteBlob(image,sVar14,pEVar15);" (call_expression "WriteBlob(image,sVar14,pEVar15)" identifier (argument_list "(image,sVar14,pEVar15)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pSVar13 = GetImageProfile(image,"icc");" (assignment_expression "pSVar13 = GetImageProfile(image,"icc")" identifier = (call_expression "GetImageProfile(image,"icc")" identifier (argument_list "(image,"icc")" ( identifier , (string_literal ""icc"" " string_content ") )))) ;) (if_statement "if (pSVar13 != (StringInfo *)0x0) {\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobMSBLong(image,0);\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          WriteBlobMSBShort(image,4);\n          WriteBlobMSBLong(image,2);\n        }" if (parenthesized_expression "(pSVar13 != (StringInfo *)0x0)" ( (binary_expression "pSVar13 != (StringInfo *)0x0" identifier != (cast_expression "(StringInfo *)0x0" ( (type_descriptor "StringInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlobMSBShort(image,(short)sVar14 + 4);\n          WriteBlobMSBLong(image,0);\n          pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);\n          sVar14 = GetStringInfoLength(pSVar13);\n          WriteBlob(image,sVar14,pEVar15);\n          WriteBlobMSBShort(image,0xa1);\n          WriteBlobMSBShort(image,0xe0);\n          WriteBlobMSBShort(image,4);\n          WriteBlobMSBLong(image,2);\n        }" { (expression_statement "WriteBlobMSBShort(image,0xa1);" (call_expression "WriteBlobMSBShort(image,0xa1)" identifier (argument_list "(image,0xa1)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0xe0);" (call_expression "WriteBlobMSBShort(image,0xe0)" identifier (argument_list "(image,0xe0)" ( identifier , number_literal ))) ;) (expression_statement "sVar14 = GetStringInfoLength(pSVar13);" (assignment_expression "sVar14 = GetStringInfoLength(pSVar13)" identifier = (call_expression "GetStringInfoLength(pSVar13)" identifier (argument_list "(pSVar13)" ( identifier )))) ;) (expression_statement "WriteBlobMSBShort(image,(short)sVar14 + 4);" (call_expression "WriteBlobMSBShort(image,(short)sVar14 + 4)" identifier (argument_list "(image,(short)sVar14 + 4)" ( identifier , (binary_expression "(short)sVar14 + 4" (cast_expression "(short)sVar14" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) + number_literal) ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13);" (assignment_expression "pEVar15 = (ExceptionInfo *)GetStringInfoDatum(pSVar13)" identifier = (cast_expression "(ExceptionInfo *)GetStringInfoDatum(pSVar13)" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "GetStringInfoDatum(pSVar13)" identifier (argument_list "(pSVar13)" ( identifier ))))) ;) (expression_statement "sVar14 = GetStringInfoLength(pSVar13);" (assignment_expression "sVar14 = GetStringInfoLength(pSVar13)" identifier = (call_expression "GetStringInfoLength(pSVar13)" identifier (argument_list "(pSVar13)" ( identifier )))) ;) (expression_statement "WriteBlob(image,sVar14,pEVar15);" (call_expression "WriteBlob(image,sVar14,pEVar15)" identifier (argument_list "(image,sVar14,pEVar15)" ( identifier , identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(image,0xa1);" (call_expression "WriteBlobMSBShort(image,0xa1)" identifier (argument_list "(image,0xa1)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0xe0);" (call_expression "WriteBlobMSBShort(image,0xe0)" identifier (argument_list "(image,0xe0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,4);" (call_expression "WriteBlobMSBShort(image,4)" identifier (argument_list "(image,4)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,2);" (call_expression "WriteBlobMSBLong(image,2)" identifier (argument_list "(image,2)" ( identifier , number_literal ))) ;) })) (expression_statement "WriteBlobMSBShort(image,1);" (call_expression "WriteBlobMSBShort(image,1)" identifier (argument_list "(image,1)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,10);" (call_expression "WriteBlobMSBShort(image,10)" identifier (argument_list "(image,10)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,value_00);" (call_expression "WriteBlobMSBShort(image,value_00)" identifier (argument_list "(image,value_00)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(image,value);" (call_expression "WriteBlobMSBShort(image,value)" identifier (argument_list "(image,value)" ( identifier , identifier ))) ;) (if_statement "if (image_info->compression == JPEGCompression) {\n          pIVar17 = CloneImage(image,0,0,MagickTrue,exception);\n          if (pIVar17 == (Image *)0x0) {\n            CloseBlob(image);\n          }\n          else {\n            image_info_00 = CloneImageInfo(image_info);\n            CopyMagickString(image_info_00->magick,"JPEG",0x1000);\n            length = 0;\n            pixels = exception;\n            data = (ExceptionInfo *)ImageToBlob(image_info_00,pIVar17,&length,exception);\n            DestroyImageInfo(image_info_00);\n            if (data != (ExceptionInfo *)0x0) {\n              DestroyImage(pIVar17);\n              WriteBlobMSBShort(image,0x8200);\n              WriteBlobMSBLong(image,length + 0x9a);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x40000000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x400000);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x566a70);\n              WriteBlobMSBLong(image,0x65670000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,1);\n              WriteBlobMSBLong(image,0x16170);\n              WriteBlobMSBLong(image,0x706c0000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,length);\n              WriteBlobMSBShort(image,1);\n              WriteBlobMSBLong(image,0xb466f74);\n              WriteBlobMSBLong(image,0x6f202d20);\n              WriteBlobMSBLong(image,0x4a504547);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x18ffff);\n              pEVar15 = data;\n              WriteBlob(image,length,data);\n              if ((length & 1) != 0) {\n                pEVar15 = extraout_ECX_00;\n                pixels = extraout_ECX_00;\n                WriteBlobByte(image,'\0');\n              }\n              RelinquishMagickMemory(data);\n              goto LAB_00278cac;\n            }\n          }\n          MVar11 = MagickFalse;\n          goto LAB_0027872e;\n        }" if (parenthesized_expression "(image_info->compression == JPEGCompression)" ( (binary_expression "image_info->compression == JPEGCompression" (field_expression "image_info->compression" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          pIVar17 = CloneImage(image,0,0,MagickTrue,exception);\n          if (pIVar17 == (Image *)0x0) {\n            CloseBlob(image);\n          }\n          else {\n            image_info_00 = CloneImageInfo(image_info);\n            CopyMagickString(image_info_00->magick,"JPEG",0x1000);\n            length = 0;\n            pixels = exception;\n            data = (ExceptionInfo *)ImageToBlob(image_info_00,pIVar17,&length,exception);\n            DestroyImageInfo(image_info_00);\n            if (data != (ExceptionInfo *)0x0) {\n              DestroyImage(pIVar17);\n              WriteBlobMSBShort(image,0x8200);\n              WriteBlobMSBLong(image,length + 0x9a);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x40000000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x400000);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x566a70);\n              WriteBlobMSBLong(image,0x65670000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,1);\n              WriteBlobMSBLong(image,0x16170);\n              WriteBlobMSBLong(image,0x706c0000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,length);\n              WriteBlobMSBShort(image,1);\n              WriteBlobMSBLong(image,0xb466f74);\n              WriteBlobMSBLong(image,0x6f202d20);\n              WriteBlobMSBLong(image,0x4a504547);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x18ffff);\n              pEVar15 = data;\n              WriteBlob(image,length,data);\n              if ((length & 1) != 0) {\n                pEVar15 = extraout_ECX_00;\n                pixels = extraout_ECX_00;\n                WriteBlobByte(image,'\0');\n              }\n              RelinquishMagickMemory(data);\n              goto LAB_00278cac;\n            }\n          }\n          MVar11 = MagickFalse;\n          goto LAB_0027872e;\n        }" { (expression_statement "pIVar17 = CloneImage(image,0,0,MagickTrue,exception);" (assignment_expression "pIVar17 = CloneImage(image,0,0,MagickTrue,exception)" identifier = (call_expression "CloneImage(image,0,0,MagickTrue,exception)" identifier (argument_list "(image,0,0,MagickTrue,exception)" ( identifier , number_literal , number_literal , identifier , identifier )))) ;) (if_statement "if (pIVar17 == (Image *)0x0) {\n            CloseBlob(image);\n          }\n          else {\n            image_info_00 = CloneImageInfo(image_info);\n            CopyMagickString(image_info_00->magick,"JPEG",0x1000);\n            length = 0;\n            pixels = exception;\n            data = (ExceptionInfo *)ImageToBlob(image_info_00,pIVar17,&length,exception);\n            DestroyImageInfo(image_info_00);\n            if (data != (ExceptionInfo *)0x0) {\n              DestroyImage(pIVar17);\n              WriteBlobMSBShort(image,0x8200);\n              WriteBlobMSBLong(image,length + 0x9a);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x40000000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x400000);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x566a70);\n              WriteBlobMSBLong(image,0x65670000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,1);\n              WriteBlobMSBLong(image,0x16170);\n              WriteBlobMSBLong(image,0x706c0000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,length);\n              WriteBlobMSBShort(image,1);\n              WriteBlobMSBLong(image,0xb466f74);\n              WriteBlobMSBLong(image,0x6f202d20);\n              WriteBlobMSBLong(image,0x4a504547);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x18ffff);\n              pEVar15 = data;\n              WriteBlob(image,length,data);\n              if ((length & 1) != 0) {\n                pEVar15 = extraout_ECX_00;\n                pixels = extraout_ECX_00;\n                WriteBlobByte(image,'\0');\n              }\n              RelinquishMagickMemory(data);\n              goto LAB_00278cac;\n            }\n          }" if (parenthesized_expression "(pIVar17 == (Image *)0x0)" ( (binary_expression "pIVar17 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            CloseBlob(image);\n          }" { (expression_statement "CloseBlob(image);" (call_expression "CloseBlob(image)" identifier (argument_list "(image)" ( identifier ))) ;) }) (else_clause "else {\n            image_info_00 = CloneImageInfo(image_info);\n            CopyMagickString(image_info_00->magick,"JPEG",0x1000);\n            length = 0;\n            pixels = exception;\n            data = (ExceptionInfo *)ImageToBlob(image_info_00,pIVar17,&length,exception);\n            DestroyImageInfo(image_info_00);\n            if (data != (ExceptionInfo *)0x0) {\n              DestroyImage(pIVar17);\n              WriteBlobMSBShort(image,0x8200);\n              WriteBlobMSBLong(image,length + 0x9a);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x40000000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x400000);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x566a70);\n              WriteBlobMSBLong(image,0x65670000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,1);\n              WriteBlobMSBLong(image,0x16170);\n              WriteBlobMSBLong(image,0x706c0000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,length);\n              WriteBlobMSBShort(image,1);\n              WriteBlobMSBLong(image,0xb466f74);\n              WriteBlobMSBLong(image,0x6f202d20);\n              WriteBlobMSBLong(image,0x4a504547);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x18ffff);\n              pEVar15 = data;\n              WriteBlob(image,length,data);\n              if ((length & 1) != 0) {\n                pEVar15 = extraout_ECX_00;\n                pixels = extraout_ECX_00;\n                WriteBlobByte(image,'\0');\n              }\n              RelinquishMagickMemory(data);\n              goto LAB_00278cac;\n            }\n          }" else (compound_statement "{\n            image_info_00 = CloneImageInfo(image_info);\n            CopyMagickString(image_info_00->magick,"JPEG",0x1000);\n            length = 0;\n            pixels = exception;\n            data = (ExceptionInfo *)ImageToBlob(image_info_00,pIVar17,&length,exception);\n            DestroyImageInfo(image_info_00);\n            if (data != (ExceptionInfo *)0x0) {\n              DestroyImage(pIVar17);\n              WriteBlobMSBShort(image,0x8200);\n              WriteBlobMSBLong(image,length + 0x9a);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x40000000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x400000);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x566a70);\n              WriteBlobMSBLong(image,0x65670000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,1);\n              WriteBlobMSBLong(image,0x16170);\n              WriteBlobMSBLong(image,0x706c0000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,length);\n              WriteBlobMSBShort(image,1);\n              WriteBlobMSBLong(image,0xb466f74);\n              WriteBlobMSBLong(image,0x6f202d20);\n              WriteBlobMSBLong(image,0x4a504547);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x18ffff);\n              pEVar15 = data;\n              WriteBlob(image,length,data);\n              if ((length & 1) != 0) {\n                pEVar15 = extraout_ECX_00;\n                pixels = extraout_ECX_00;\n                WriteBlobByte(image,'\0');\n              }\n              RelinquishMagickMemory(data);\n              goto LAB_00278cac;\n            }\n          }" { (expression_statement "image_info_00 = CloneImageInfo(image_info);" (assignment_expression "image_info_00 = CloneImageInfo(image_info)" identifier = (call_expression "CloneImageInfo(image_info)" identifier (argument_list "(image_info)" ( identifier )))) ;) (expression_statement "CopyMagickString(image_info_00->magick,"JPEG",0x1000);" (call_expression "CopyMagickString(image_info_00->magick,"JPEG",0x1000)" identifier (argument_list "(image_info_00->magick,"JPEG",0x1000)" ( (field_expression "image_info_00->magick" identifier -> field_identifier) , (string_literal ""JPEG"" " string_content ") , number_literal ))) ;) (expression_statement "length = 0;" (assignment_expression "length = 0" identifier = number_literal) ;) (expression_statement "pixels = exception;" (assignment_expression "pixels = exception" identifier = identifier) ;) (expression_statement "data = (ExceptionInfo *)ImageToBlob(image_info_00,pIVar17,&length,exception);" (assignment_expression "data = (ExceptionInfo *)ImageToBlob(image_info_00,pIVar17,&length,exception)" identifier = (cast_expression "(ExceptionInfo *)ImageToBlob(image_info_00,pIVar17,&length,exception)" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ImageToBlob(image_info_00,pIVar17,&length,exception)" identifier (argument_list "(image_info_00,pIVar17,&length,exception)" ( identifier , identifier , (pointer_expression "&length" & identifier) , identifier ))))) ;) (expression_statement "DestroyImageInfo(image_info_00);" (call_expression "DestroyImageInfo(image_info_00)" identifier (argument_list "(image_info_00)" ( identifier ))) ;) (if_statement "if (data != (ExceptionInfo *)0x0) {\n              DestroyImage(pIVar17);\n              WriteBlobMSBShort(image,0x8200);\n              WriteBlobMSBLong(image,length + 0x9a);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x40000000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x400000);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x566a70);\n              WriteBlobMSBLong(image,0x65670000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,1);\n              WriteBlobMSBLong(image,0x16170);\n              WriteBlobMSBLong(image,0x706c0000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,length);\n              WriteBlobMSBShort(image,1);\n              WriteBlobMSBLong(image,0xb466f74);\n              WriteBlobMSBLong(image,0x6f202d20);\n              WriteBlobMSBLong(image,0x4a504547);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x18ffff);\n              pEVar15 = data;\n              WriteBlob(image,length,data);\n              if ((length & 1) != 0) {\n                pEVar15 = extraout_ECX_00;\n                pixels = extraout_ECX_00;\n                WriteBlobByte(image,'\0');\n              }\n              RelinquishMagickMemory(data);\n              goto LAB_00278cac;\n            }" if (parenthesized_expression "(data != (ExceptionInfo *)0x0)" ( (binary_expression "data != (ExceptionInfo *)0x0" identifier != (cast_expression "(ExceptionInfo *)0x0" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              DestroyImage(pIVar17);\n              WriteBlobMSBShort(image,0x8200);\n              WriteBlobMSBLong(image,length + 0x9a);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x10000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x40000000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x400000);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x566a70);\n              WriteBlobMSBLong(image,0x65670000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,1);\n              WriteBlobMSBLong(image,0x16170);\n              WriteBlobMSBLong(image,0x706c0000);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBShort(image,0x300);\n              WriteBlobMSBShort(image,(ushort)image->columns);\n              WriteBlobMSBShort(image,(ushort)image->rows);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));\n              WriteBlobMSBShort(image,0);\n              WriteBlobMSBLong(image,length);\n              WriteBlobMSBShort(image,1);\n              WriteBlobMSBLong(image,0xb466f74);\n              WriteBlobMSBLong(image,0x6f202d20);\n              WriteBlobMSBLong(image,0x4a504547);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0);\n              WriteBlobMSBLong(image,0x18ffff);\n              pEVar15 = data;\n              WriteBlob(image,length,data);\n              if ((length & 1) != 0) {\n                pEVar15 = extraout_ECX_00;\n                pixels = extraout_ECX_00;\n                WriteBlobByte(image,'\0');\n              }\n              RelinquishMagickMemory(data);\n              goto LAB_00278cac;\n            }" { (expression_statement "DestroyImage(pIVar17);" (call_expression "DestroyImage(pIVar17)" identifier (argument_list "(pIVar17)" ( identifier ))) ;) (expression_statement "WriteBlobMSBShort(image,0x8200);" (call_expression "WriteBlobMSBShort(image,0x8200)" identifier (argument_list "(image,0x8200)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,length + 0x9a);" (call_expression "WriteBlobMSBLong(image,length + 0x9a)" identifier (argument_list "(image,length + 0x9a)" ( identifier , (binary_expression "length + 0x9a" identifier + number_literal) ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0x10000);" (call_expression "WriteBlobMSBLong(image,0x10000)" identifier (argument_list "(image,0x10000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0x10000);" (call_expression "WriteBlobMSBLong(image,0x10000)" identifier (argument_list "(image,0x10000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0x40000000);" (call_expression "WriteBlobMSBLong(image,0x40000000)" identifier (argument_list "(image,0x40000000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0x400000);" (call_expression "WriteBlobMSBLong(image,0x400000)" identifier (argument_list "(image,0x400000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,(ushort)image->rows);" (call_expression "WriteBlobMSBShort(image,(ushort)image->rows)" identifier (argument_list "(image,(ushort)image->rows)" ( identifier , (cast_expression "(ushort)image->rows" ( (type_descriptor "ushort" type_identifier) ) (field_expression "image->rows" identifier -> field_identifier)) ))) ;) (expression_statement "WriteBlobMSBShort(image,(ushort)image->columns);" (call_expression "WriteBlobMSBShort(image,(ushort)image->columns)" identifier (argument_list "(image,(ushort)image->columns)" ( identifier , (cast_expression "(ushort)image->columns" ( (type_descriptor "ushort" type_identifier) ) (field_expression "image->columns" identifier -> field_identifier)) ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0x300);" (call_expression "WriteBlobMSBShort(image,0x300)" identifier (argument_list "(image,0x300)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0x566a70);" (call_expression "WriteBlobMSBLong(image,0x566a70)" identifier (argument_list "(image,0x566a70)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0x65670000);" (call_expression "WriteBlobMSBLong(image,0x65670000)" identifier (argument_list "(image,0x65670000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,1);" (call_expression "WriteBlobMSBLong(image,1)" identifier (argument_list "(image,1)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0x16170);" (call_expression "WriteBlobMSBLong(image,0x16170)" identifier (argument_list "(image,0x16170)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0x706c0000);" (call_expression "WriteBlobMSBLong(image,0x706c0000)" identifier (argument_list "(image,0x706c0000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0x300);" (call_expression "WriteBlobMSBShort(image,0x300)" identifier (argument_list "(image,0x300)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,(ushort)image->columns);" (call_expression "WriteBlobMSBShort(image,(ushort)image->columns)" identifier (argument_list "(image,(ushort)image->columns)" ( identifier , (cast_expression "(ushort)image->columns" ( (type_descriptor "ushort" type_identifier) ) (field_expression "image->columns" identifier -> field_identifier)) ))) ;) (expression_statement "WriteBlobMSBShort(image,(ushort)image->rows);" (call_expression "WriteBlobMSBShort(image,(ushort)image->rows)" identifier (argument_list "(image,(ushort)image->rows)" ( identifier , (cast_expression "(ushort)image->rows" ( (type_descriptor "ushort" type_identifier) ) (field_expression "image->rows" identifier -> field_identifier)) ))) ;) (expression_statement "WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3));" (call_expression "WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar3))" identifier (argument_list "(image,(ushort)(int)ROUND(dVar3))" ( identifier , (cast_expression "(ushort)(int)ROUND(dVar3)" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(int)ROUND(dVar3)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4));" (call_expression "WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4))" identifier (argument_list "(image,(ushort)(int)ROUND(dVar4))" ( identifier , (cast_expression "(ushort)(int)ROUND(dVar4)" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(int)ROUND(dVar4)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar4)" identifier (argument_list "(dVar4)" ( identifier ))))) ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,length);" (call_expression "WriteBlobMSBLong(image,length)" identifier (argument_list "(image,length)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(image,1);" (call_expression "WriteBlobMSBShort(image,1)" identifier (argument_list "(image,1)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0xb466f74);" (call_expression "WriteBlobMSBLong(image,0xb466f74)" identifier (argument_list "(image,0xb466f74)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0x6f202d20);" (call_expression "WriteBlobMSBLong(image,0x6f202d20)" identifier (argument_list "(image,0x6f202d20)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0x4a504547);" (call_expression "WriteBlobMSBLong(image,0x4a504547)" identifier (argument_list "(image,0x4a504547)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0x18ffff);" (call_expression "WriteBlobMSBLong(image,0x18ffff)" identifier (argument_list "(image,0x18ffff)" ( identifier , number_literal ))) ;) (expression_statement "pEVar15 = data;" (assignment_expression "pEVar15 = data" identifier = identifier) ;) (expression_statement "WriteBlob(image,length,data);" (call_expression "WriteBlob(image,length,data)" identifier (argument_list "(image,length,data)" ( identifier , identifier , identifier ))) ;) (if_statement "if ((length & 1) != 0) {\n                pEVar15 = extraout_ECX_00;\n                pixels = extraout_ECX_00;\n                WriteBlobByte(image,'\0');\n              }" if (parenthesized_expression "((length & 1) != 0)" ( (binary_expression "(length & 1) != 0" (parenthesized_expression "(length & 1)" ( (binary_expression "length & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                pEVar15 = extraout_ECX_00;\n                pixels = extraout_ECX_00;\n                WriteBlobByte(image,'\0');\n              }" { (expression_statement "pEVar15 = extraout_ECX_00;" (assignment_expression "pEVar15 = extraout_ECX_00" identifier = identifier) ;) (expression_statement "pixels = extraout_ECX_00;" (assignment_expression "pixels = extraout_ECX_00" identifier = identifier) ;) (expression_statement "WriteBlobByte(image,'\0');" (call_expression "WriteBlobByte(image,'\0')" identifier (argument_list "(image,'\0')" ( identifier , (char_literal "'\0'" ' escape_sequence ') ))) ;) })) (expression_statement "RelinquishMagickMemory(data);" (call_expression "RelinquishMagickMemory(data)" identifier (argument_list "(data)" ( identifier ))) ;) (goto_statement "goto LAB_00278cac;" goto statement_identifier ;) })) }))) (expression_statement "MVar11 = MagickFalse;" (assignment_expression "MVar11 = MagickFalse" identifier = identifier) ;) (goto_statement "goto LAB_0027872e;" goto statement_identifier ;) })) (labeled_statement "LAB_00278cac:\n        if (CVar20 == PseudoClass) {\n          WriteBlobMSBShort(image,0x98);\n        }\n        else {\n          WriteBlobMSBShort(image,0x9a);\n          WriteBlobMSBLong(image,0xff);\n        }" statement_identifier : (if_statement "if (CVar20 == PseudoClass) {\n          WriteBlobMSBShort(image,0x98);\n        }\n        else {\n          WriteBlobMSBShort(image,0x9a);\n          WriteBlobMSBLong(image,0xff);\n        }" if (parenthesized_expression "(CVar20 == PseudoClass)" ( (binary_expression "CVar20 == PseudoClass" identifier == identifier) )) (compound_statement "{\n          WriteBlobMSBShort(image,0x98);\n        }" { (expression_statement "WriteBlobMSBShort(image,0x98);" (call_expression "WriteBlobMSBShort(image,0x98)" identifier (argument_list "(image,0x98)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n          WriteBlobMSBShort(image,0x9a);\n          WriteBlobMSBLong(image,0xff);\n        }" else (compound_statement "{\n          WriteBlobMSBShort(image,0x9a);\n          WriteBlobMSBLong(image,0xff);\n        }" { (expression_statement "WriteBlobMSBShort(image,0x9a);" (call_expression "WriteBlobMSBShort(image,0x9a)" identifier (argument_list "(image,0x9a)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0xff);" (call_expression "WriteBlobMSBLong(image,0xff)" identifier (argument_list "(image,0xff)" ( identifier , number_literal ))) ;) })))) (expression_statement "WriteBlobMSBShort(image,(ushort)local_94 | 0x8000);" (call_expression "WriteBlobMSBShort(image,(ushort)local_94 | 0x8000)" identifier (argument_list "(image,(ushort)local_94 | 0x8000)" ( identifier , (binary_expression "(ushort)local_94 | 0x8000" (cast_expression "(ushort)local_94" ( (type_descriptor "ushort" type_identifier) ) identifier) | number_literal) ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,value_00);" (call_expression "WriteBlobMSBShort(image,value_00)" identifier (argument_list "(image,value_00)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(image,value);" (call_expression "WriteBlobMSBShort(image,value)" identifier (argument_list "(image,value)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,local_84);" (call_expression "WriteBlobMSBShort(image,local_84)" identifier (argument_list "(image,local_84)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "dVar5 = (double)DAT_002df2b8;" (assignment_expression "dVar5 = (double)DAT_002df2b8" identifier = (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "WriteBlobMSBShort(image,(ushort)(int)ROUND((float)dVar3 + DAT_002df2b8));" (call_expression "WriteBlobMSBShort(image,(ushort)(int)ROUND((float)dVar3 + DAT_002df2b8))" identifier (argument_list "(image,(ushort)(int)ROUND((float)dVar3 + DAT_002df2b8))" ( identifier , (cast_expression "(ushort)(int)ROUND((float)dVar3 + DAT_002df2b8)" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(int)ROUND((float)dVar3 + DAT_002df2b8)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND((float)dVar3 + DAT_002df2b8)" identifier (argument_list "((float)dVar3 + DAT_002df2b8)" ( (binary_expression "(float)dVar3 + DAT_002df2b8" (cast_expression "(float)dVar3" ( (type_descriptor "float" primitive_type) ) identifier) + identifier) ))))) ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4 + dVar5));" (call_expression "WriteBlobMSBShort(image,(ushort)(int)ROUND(dVar4 + dVar5))" identifier (argument_list "(image,(ushort)(int)ROUND(dVar4 + dVar5))" ( identifier , (cast_expression "(ushort)(int)ROUND(dVar4 + dVar5)" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(int)ROUND(dVar4 + dVar5)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar4 + dVar5)" identifier (argument_list "(dVar4 + dVar5)" ( (binary_expression "dVar4 + dVar5" identifier + identifier) ))))) ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,local_88);" (call_expression "WriteBlobMSBShort(image,local_88)" identifier (argument_list "(image,local_88)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(image,(ushort)local_8c);" (call_expression "WriteBlobMSBShort(image,(ushort)local_8c)" identifier (argument_list "(image,(ushort)local_8c)" ( identifier , (cast_expression "(ushort)local_8c" ( (type_descriptor "ushort" type_identifier) ) identifier) ))) ;) (expression_statement "WriteBlobMSBShort(image,(ushort)local_9c);" (call_expression "WriteBlobMSBShort(image,(ushort)local_9c)" identifier (argument_list "(image,(ushort)local_9c)" ( identifier , (cast_expression "(ushort)local_9c" ( (type_descriptor "ushort" type_identifier) ) identifier) ))) ;) (expression_statement "WriteBlobMSBShort(image,8);" (call_expression "WriteBlobMSBShort(image,8)" identifier (argument_list "(image,8)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "uVar28 = (undefined1)((uint)exception >> 8);" (assignment_expression "uVar28 = (undefined1)((uint)exception >> 8)" identifier = (call_expression "(undefined1)((uint)exception >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)exception >> 8)" ( (binary_expression "(uint)exception >> 8" (cast_expression "(uint)exception" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar31 = (undefined2)((uint)exception >> 0x10);" (assignment_expression "uVar31 = (undefined2)((uint)exception >> 0x10)" identifier = (call_expression "(undefined2)((uint)exception >> 0x10)" (parenthesized_expression "(undefined2)" ( identifier )) (argument_list "((uint)exception >> 0x10)" ( (binary_expression "(uint)exception >> 0x10" (cast_expression "(uint)exception" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (CVar20 == PseudoClass) {\n          WriteBlobMSBLong(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,(short)image->colors - 1);\n          if (0 < (int)image->colors) {\n            iVar18 = 0;\n            iVar24 = 0;\n            do {\n              WriteBlobMSBShort(image,(ushort)iVar24);\n              dVar3 = *(double *)((int)&image->colormap->red + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->green + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->blue + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              iVar24 = iVar24 + 1;\n              iVar18 = iVar18 + 0x50;\n              WriteBlobMSBShort(image,uVar10);\n            } while (iVar24 < (int)image->colors);\n          }\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar1 = 0;\n          if (0 < (int)image->rows) {\n            do {\n              uVar29 = (char)exception;\n              uVar30 = uVar28;\n              uVar32 = uVar31;\n              pQVar16 = GetVirtualPixels(image,0,local_a0,image->columns,1,exception);\n              if (pQVar16 == (Quantum *)0x0) break;\n              sVar14 = image->columns;\n              if (0 < (int)sVar14) {\n                sVar7 = image->number_channels;\n                pPVar9 = image->channel_map;\n                puVar19 = memory_00;\n                do {\n                  while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }\n                  *puVar19 = 0;\n                  puVar19 = puVar19 + 1;\n                  pQVar16 = pQVar16 + sVar7;\n                } while (puVar19 != memory_00 + sVar14);\n              }\nLAB_00279a01:\n              sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels);\n              uVar1 = uVar1 + sVar14;\n              if ((image->previous == (_Image *)0x0) &&\n                 (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse)) break;\n              local_a0 = local_a0 + 1;\n              bVar25 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar25;\n            } while ((int)local_a0 < (int)image->rows);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          if (image_info->compression == JPEGCompression) {\n            uVar28 = 0;\n            uVar29 = 0;\n            uVar31 = 0;\n            pixels_00 = extraout_ECX;\n            memset(memory_00,0,local_94);\n            if (0 < (int)image->rows) {\n              iVar18 = 0;\n              uVar1 = 0;\n              do {\n                iVar18 = iVar18 + 1;\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00);\n                uVar1 = uVar1 + sVar14;\n              } while (iVar18 < (int)image->rows);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            sVar14 = image->columns;\n            local_a4 = memory_00 + sVar14 * 3;\n            if (0 < (int)image->rows) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar18 = 0;\n              uVar1 = 0;\n              while (uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0) {\n                sVar14 = image->columns;\n                puVar19 = memory_00 + sVar14;\n                puVar21 = puVar19 + sVar14;\n                PVar8 = image->alpha_trait;\n                local_9c = puVar19;\n                local_90 = puVar21;\n                local_8c = memory_00;\n                if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }\n                if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);\n                uVar1 = uVar1 + sVar14;\n                if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;\n                iVar18 = iVar18 + 1;\n                bVar25 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar25;\n                if ((int)image->rows <= iVar18) break;\n                sVar14 = image->columns;\n              }\nLAB_002792ae:\n              if ((uVar1 & 1) != 0) {\n                WriteBlobByte(image,'\0');\n              }\n            }\n          }\n        }" if (parenthesized_expression "(CVar20 == PseudoClass)" ( (binary_expression "CVar20 == PseudoClass" identifier == identifier) )) (compound_statement "{\n          WriteBlobMSBLong(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,(short)image->colors - 1);\n          if (0 < (int)image->colors) {\n            iVar18 = 0;\n            iVar24 = 0;\n            do {\n              WriteBlobMSBShort(image,(ushort)iVar24);\n              dVar3 = *(double *)((int)&image->colormap->red + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->green + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->blue + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              iVar24 = iVar24 + 1;\n              iVar18 = iVar18 + 0x50;\n              WriteBlobMSBShort(image,uVar10);\n            } while (iVar24 < (int)image->colors);\n          }\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar1 = 0;\n          if (0 < (int)image->rows) {\n            do {\n              uVar29 = (char)exception;\n              uVar30 = uVar28;\n              uVar32 = uVar31;\n              pQVar16 = GetVirtualPixels(image,0,local_a0,image->columns,1,exception);\n              if (pQVar16 == (Quantum *)0x0) break;\n              sVar14 = image->columns;\n              if (0 < (int)sVar14) {\n                sVar7 = image->number_channels;\n                pPVar9 = image->channel_map;\n                puVar19 = memory_00;\n                do {\n                  while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }\n                  *puVar19 = 0;\n                  puVar19 = puVar19 + 1;\n                  pQVar16 = pQVar16 + sVar7;\n                } while (puVar19 != memory_00 + sVar14);\n              }\nLAB_00279a01:\n              sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels);\n              uVar1 = uVar1 + sVar14;\n              if ((image->previous == (_Image *)0x0) &&\n                 (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse)) break;\n              local_a0 = local_a0 + 1;\n              bVar25 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar25;\n            } while ((int)local_a0 < (int)image->rows);\n            goto LAB_002792ae;\n          }\n        }" { (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,(short)image->colors - 1);" (call_expression "WriteBlobMSBShort(image,(short)image->colors - 1)" identifier (argument_list "(image,(short)image->colors - 1)" ( identifier , (binary_expression "(short)image->colors - 1" (cast_expression "(short)image->colors" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (field_expression "image->colors" identifier -> field_identifier)) - number_literal) ))) ;) (if_statement "if (0 < (int)image->colors) {\n            iVar18 = 0;\n            iVar24 = 0;\n            do {\n              WriteBlobMSBShort(image,(ushort)iVar24);\n              dVar3 = *(double *)((int)&image->colormap->red + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->green + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->blue + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              iVar24 = iVar24 + 1;\n              iVar18 = iVar18 + 0x50;\n              WriteBlobMSBShort(image,uVar10);\n            } while (iVar24 < (int)image->colors);\n          }" if (parenthesized_expression "(0 < (int)image->colors)" ( (binary_expression "0 < (int)image->colors" number_literal < (cast_expression "(int)image->colors" ( (type_descriptor "int" primitive_type) ) (field_expression "image->colors" identifier -> field_identifier))) )) (compound_statement "{\n            iVar18 = 0;\n            iVar24 = 0;\n            do {\n              WriteBlobMSBShort(image,(ushort)iVar24);\n              dVar3 = *(double *)((int)&image->colormap->red + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->green + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->blue + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              iVar24 = iVar24 + 1;\n              iVar18 = iVar18 + 0x50;\n              WriteBlobMSBShort(image,uVar10);\n            } while (iVar24 < (int)image->colors);\n          }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (do_statement "do {\n              WriteBlobMSBShort(image,(ushort)iVar24);\n              dVar3 = *(double *)((int)&image->colormap->red + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->green + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->blue + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              iVar24 = iVar24 + 1;\n              iVar18 = iVar18 + 0x50;\n              WriteBlobMSBShort(image,uVar10);\n            } while (iVar24 < (int)image->colors);" do (compound_statement "{\n              WriteBlobMSBShort(image,(ushort)iVar24);\n              dVar3 = *(double *)((int)&image->colormap->red + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->green + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              WriteBlobMSBShort(image,uVar10);\n              dVar3 = *(double *)((int)&image->colormap->blue + iVar18);\n              uVar10 = 0;\n              if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }\n              iVar24 = iVar24 + 1;\n              iVar18 = iVar18 + 0x50;\n              WriteBlobMSBShort(image,uVar10);\n            }" { (expression_statement "WriteBlobMSBShort(image,(ushort)iVar24);" (call_expression "WriteBlobMSBShort(image,(ushort)iVar24)" identifier (argument_list "(image,(ushort)iVar24)" ( identifier , (cast_expression "(ushort)iVar24" ( (type_descriptor "ushort" type_identifier) ) identifier) ))) ;) (expression_statement "dVar3 = *(double *)((int)&image->colormap->red + iVar18);" (assignment_expression "dVar3 = *(double *)((int)&image->colormap->red + iVar18)" identifier = (pointer_expression "*(double *)((int)&image->colormap->red + iVar18)" * (cast_expression "(double *)((int)&image->colormap->red + iVar18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&image->colormap->red + iVar18)" ( (binary_expression "(int)&image->colormap->red + iVar18" (cast_expression "(int)&image->colormap->red" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&image->colormap->red" & (field_expression "image->colormap->red" (field_expression "image->colormap" identifier -> field_identifier) -> field_identifier))) + identifier) ))))) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }" if (parenthesized_expression "((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8))" ( (binary_expression "(0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)" (parenthesized_expression "(0.0 < dVar3)" ( (binary_expression "0.0 < dVar3" number_literal < identifier) )) && (parenthesized_expression "(uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)" ( (comma_expression "uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8" (assignment_expression "uVar10 = 0xffff" identifier = number_literal) , (binary_expression "dVar3 < (double)DAT_002df8a8" identifier < (cast_expression "(double)DAT_002df8a8" ( (type_descriptor "double" primitive_type) ) identifier))) ))) )) (compound_statement "{\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }" { (expression_statement "uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);" (assignment_expression "uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8)" identifier = (cast_expression "(ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8)" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(int)ROUND(dVar3 + (double)DAT_002df2b8)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3 + (double)DAT_002df2b8)" identifier (argument_list "(dVar3 + (double)DAT_002df2b8)" ( (binary_expression "dVar3 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) (expression_statement "WriteBlobMSBShort(image,uVar10);" (call_expression "WriteBlobMSBShort(image,uVar10)" identifier (argument_list "(image,uVar10)" ( identifier , identifier ))) ;) (expression_statement "dVar3 = *(double *)((int)&image->colormap->green + iVar18);" (assignment_expression "dVar3 = *(double *)((int)&image->colormap->green + iVar18)" identifier = (pointer_expression "*(double *)((int)&image->colormap->green + iVar18)" * (cast_expression "(double *)((int)&image->colormap->green + iVar18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&image->colormap->green + iVar18)" ( (binary_expression "(int)&image->colormap->green + iVar18" (cast_expression "(int)&image->colormap->green" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&image->colormap->green" & (field_expression "image->colormap->green" (field_expression "image->colormap" identifier -> field_identifier) -> field_identifier))) + identifier) ))))) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }" if (parenthesized_expression "((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8))" ( (binary_expression "(0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)" (parenthesized_expression "(0.0 < dVar3)" ( (binary_expression "0.0 < dVar3" number_literal < identifier) )) && (parenthesized_expression "(uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)" ( (comma_expression "uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8" (assignment_expression "uVar10 = 0xffff" identifier = number_literal) , (binary_expression "dVar3 < (double)DAT_002df8a8" identifier < (cast_expression "(double)DAT_002df8a8" ( (type_descriptor "double" primitive_type) ) identifier))) ))) )) (compound_statement "{\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }" { (expression_statement "uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);" (assignment_expression "uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8)" identifier = (cast_expression "(ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8)" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(int)ROUND(dVar3 + (double)DAT_002df2b8)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3 + (double)DAT_002df2b8)" identifier (argument_list "(dVar3 + (double)DAT_002df2b8)" ( (binary_expression "dVar3 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) (expression_statement "WriteBlobMSBShort(image,uVar10);" (call_expression "WriteBlobMSBShort(image,uVar10)" identifier (argument_list "(image,uVar10)" ( identifier , identifier ))) ;) (expression_statement "dVar3 = *(double *)((int)&image->colormap->blue + iVar18);" (assignment_expression "dVar3 = *(double *)((int)&image->colormap->blue + iVar18)" identifier = (pointer_expression "*(double *)((int)&image->colormap->blue + iVar18)" * (cast_expression "(double *)((int)&image->colormap->blue + iVar18)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&image->colormap->blue + iVar18)" ( (binary_expression "(int)&image->colormap->blue + iVar18" (cast_expression "(int)&image->colormap->blue" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&image->colormap->blue" & (field_expression "image->colormap->blue" (field_expression "image->colormap" identifier -> field_identifier) -> field_identifier))) + identifier) ))))) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if ((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)) {\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }" if (parenthesized_expression "((0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8))" ( (binary_expression "(0.0 < dVar3) && (uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)" (parenthesized_expression "(0.0 < dVar3)" ( (binary_expression "0.0 < dVar3" number_literal < identifier) )) && (parenthesized_expression "(uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8)" ( (comma_expression "uVar10 = 0xffff, dVar3 < (double)DAT_002df8a8" (assignment_expression "uVar10 = 0xffff" identifier = number_literal) , (binary_expression "dVar3 < (double)DAT_002df8a8" identifier < (cast_expression "(double)DAT_002df8a8" ( (type_descriptor "double" primitive_type) ) identifier))) ))) )) (compound_statement "{\n                uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);\n              }" { (expression_statement "uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8);" (assignment_expression "uVar10 = (ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8)" identifier = (cast_expression "(ushort)(int)ROUND(dVar3 + (double)DAT_002df2b8)" ( (type_descriptor "ushort" type_identifier) ) (cast_expression "(int)ROUND(dVar3 + (double)DAT_002df2b8)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3 + (double)DAT_002df2b8)" identifier (argument_list "(dVar3 + (double)DAT_002df2b8)" ( (binary_expression "dVar3 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "iVar18 = iVar18 + 0x50;" (assignment_expression "iVar18 = iVar18 + 0x50" identifier = (binary_expression "iVar18 + 0x50" identifier + number_literal)) ;) (expression_statement "WriteBlobMSBShort(image,uVar10);" (call_expression "WriteBlobMSBShort(image,uVar10)" identifier (argument_list "(image,uVar10)" ( identifier , identifier ))) ;) }) while (parenthesized_expression "(iVar24 < (int)image->colors)" ( (binary_expression "iVar24 < (int)image->colors" identifier < (cast_expression "(int)image->colors" ( (type_descriptor "int" primitive_type) ) (field_expression "image->colors" identifier -> field_identifier))) )) ;) })) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,value_00);" (call_expression "WriteBlobMSBShort(image,value_00)" identifier (argument_list "(image,value_00)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(image,value);" (call_expression "WriteBlobMSBShort(image,value)" identifier (argument_list "(image,value)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,value_00);" (call_expression "WriteBlobMSBShort(image,value_00)" identifier (argument_list "(image,value_00)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(image,value);" (call_expression "WriteBlobMSBShort(image,value)" identifier (argument_list "(image,value)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(image,(ushort)local_90);" (call_expression "WriteBlobMSBShort(image,(ushort)local_90)" identifier (argument_list "(image,(ushort)local_90)" ( identifier , (cast_expression "(ushort)local_90" ( (type_descriptor "ushort" type_identifier) ) identifier) ))) ;) (expression_statement "local_9c = (undefined1 *)0x0;" (assignment_expression "local_9c = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)image->rows) {\n            do {\n              uVar29 = (char)exception;\n              uVar30 = uVar28;\n              uVar32 = uVar31;\n              pQVar16 = GetVirtualPixels(image,0,local_a0,image->columns,1,exception);\n              if (pQVar16 == (Quantum *)0x0) break;\n              sVar14 = image->columns;\n              if (0 < (int)sVar14) {\n                sVar7 = image->number_channels;\n                pPVar9 = image->channel_map;\n                puVar19 = memory_00;\n                do {\n                  while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }\n                  *puVar19 = 0;\n                  puVar19 = puVar19 + 1;\n                  pQVar16 = pQVar16 + sVar7;\n                } while (puVar19 != memory_00 + sVar14);\n              }\nLAB_00279a01:\n              sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels);\n              uVar1 = uVar1 + sVar14;\n              if ((image->previous == (_Image *)0x0) &&\n                 (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse)) break;\n              local_a0 = local_a0 + 1;\n              bVar25 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar25;\n            } while ((int)local_a0 < (int)image->rows);\n            goto LAB_002792ae;\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            do {\n              uVar29 = (char)exception;\n              uVar30 = uVar28;\n              uVar32 = uVar31;\n              pQVar16 = GetVirtualPixels(image,0,local_a0,image->columns,1,exception);\n              if (pQVar16 == (Quantum *)0x0) break;\n              sVar14 = image->columns;\n              if (0 < (int)sVar14) {\n                sVar7 = image->number_channels;\n                pPVar9 = image->channel_map;\n                puVar19 = memory_00;\n                do {\n                  while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }\n                  *puVar19 = 0;\n                  puVar19 = puVar19 + 1;\n                  pQVar16 = pQVar16 + sVar7;\n                } while (puVar19 != memory_00 + sVar14);\n              }\nLAB_00279a01:\n              sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels);\n              uVar1 = uVar1 + sVar14;\n              if ((image->previous == (_Image *)0x0) &&\n                 (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse)) break;\n              local_a0 = local_a0 + 1;\n              bVar25 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar25;\n            } while ((int)local_a0 < (int)image->rows);\n            goto LAB_002792ae;\n          }" { (do_statement "do {\n              uVar29 = (char)exception;\n              uVar30 = uVar28;\n              uVar32 = uVar31;\n              pQVar16 = GetVirtualPixels(image,0,local_a0,image->columns,1,exception);\n              if (pQVar16 == (Quantum *)0x0) break;\n              sVar14 = image->columns;\n              if (0 < (int)sVar14) {\n                sVar7 = image->number_channels;\n                pPVar9 = image->channel_map;\n                puVar19 = memory_00;\n                do {\n                  while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }\n                  *puVar19 = 0;\n                  puVar19 = puVar19 + 1;\n                  pQVar16 = pQVar16 + sVar7;\n                } while (puVar19 != memory_00 + sVar14);\n              }\nLAB_00279a01:\n              sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels);\n              uVar1 = uVar1 + sVar14;\n              if ((image->previous == (_Image *)0x0) &&\n                 (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse)) break;\n              local_a0 = local_a0 + 1;\n              bVar25 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar25;\n            } while ((int)local_a0 < (int)image->rows);" do (compound_statement "{\n              uVar29 = (char)exception;\n              uVar30 = uVar28;\n              uVar32 = uVar31;\n              pQVar16 = GetVirtualPixels(image,0,local_a0,image->columns,1,exception);\n              if (pQVar16 == (Quantum *)0x0) break;\n              sVar14 = image->columns;\n              if (0 < (int)sVar14) {\n                sVar7 = image->number_channels;\n                pPVar9 = image->channel_map;\n                puVar19 = memory_00;\n                do {\n                  while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }\n                  *puVar19 = 0;\n                  puVar19 = puVar19 + 1;\n                  pQVar16 = pQVar16 + sVar7;\n                } while (puVar19 != memory_00 + sVar14);\n              }\nLAB_00279a01:\n              sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels);\n              uVar1 = uVar1 + sVar14;\n              if ((image->previous == (_Image *)0x0) &&\n                 (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse)) break;\n              local_a0 = local_a0 + 1;\n              bVar25 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar25;\n            }" { (expression_statement "uVar29 = (char)exception;" (assignment_expression "uVar29 = (char)exception" identifier = (cast_expression "(char)exception" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "uVar30 = uVar28;" (assignment_expression "uVar30 = uVar28" identifier = identifier) ;) (expression_statement "uVar32 = uVar31;" (assignment_expression "uVar32 = uVar31" identifier = identifier) ;) (expression_statement "pQVar16 = GetVirtualPixels(image,0,local_a0,image->columns,1,exception);" (assignment_expression "pQVar16 = GetVirtualPixels(image,0,local_a0,image->columns,1,exception)" identifier = (call_expression "GetVirtualPixels(image,0,local_a0,image->columns,1,exception)" identifier (argument_list "(image,0,local_a0,image->columns,1,exception)" ( identifier , number_literal , identifier , (field_expression "image->columns" identifier -> field_identifier) , number_literal , identifier )))) ;) (if_statement "if (pQVar16 == (Quantum *)0x0) break;" if (parenthesized_expression "(pQVar16 == (Quantum *)0x0)" ( (binary_expression "pQVar16 == (Quantum *)0x0" identifier == (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "sVar14 = image->columns;" (assignment_expression "sVar14 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (if_statement "if (0 < (int)sVar14) {\n                sVar7 = image->number_channels;\n                pPVar9 = image->channel_map;\n                puVar19 = memory_00;\n                do {\n                  while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }\n                  *puVar19 = 0;\n                  puVar19 = puVar19 + 1;\n                  pQVar16 = pQVar16 + sVar7;\n                } while (puVar19 != memory_00 + sVar14);\n              }" if (parenthesized_expression "(0 < (int)sVar14)" ( (binary_expression "0 < (int)sVar14" number_literal < (cast_expression "(int)sVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                sVar7 = image->number_channels;\n                pPVar9 = image->channel_map;\n                puVar19 = memory_00;\n                do {\n                  while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }\n                  *puVar19 = 0;\n                  puVar19 = puVar19 + 1;\n                  pQVar16 = pQVar16 + sVar7;\n                } while (puVar19 != memory_00 + sVar14);\n              }" { (expression_statement "sVar7 = image->number_channels;" (assignment_expression "sVar7 = image->number_channels" identifier = (field_expression "image->number_channels" identifier -> field_identifier)) ;) (expression_statement "pPVar9 = image->channel_map;" (assignment_expression "pPVar9 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "puVar19 = memory_00;" (assignment_expression "puVar19 = memory_00" identifier = identifier) ;) (do_statement "do {\n                  while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }\n                  *puVar19 = 0;\n                  puVar19 = puVar19 + 1;\n                  pQVar16 = pQVar16 + sVar7;\n                } while (puVar19 != memory_00 + sVar14);" do (compound_statement "{\n                  while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }\n                  *puVar19 = 0;\n                  puVar19 = puVar19 + 1;\n                  pQVar16 = pQVar16 + sVar7;\n                }" { (while_statement "while (pPVar9[5].traits != UndefinedPixelTrait) {\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }" while (parenthesized_expression "(pPVar9[5].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar9[5].traits != UndefinedPixelTrait" (field_expression "pPVar9[5].traits" (subscript_expression "pPVar9[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n                    puVar21 = puVar19 + 1;\n                    pdVar2 = pQVar16 + pPVar9[5].offset;\n                    pQVar16 = pQVar16 + sVar7;\n                    *puVar19 = (char)(short)ROUND(*pdVar2);\n                    puVar19 = puVar21;\n                    if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;\n                  }" { (expression_statement "puVar21 = puVar19 + 1;" (assignment_expression "puVar21 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) (expression_statement "pdVar2 = pQVar16 + pPVar9[5].offset;" (assignment_expression "pdVar2 = pQVar16 + pPVar9[5].offset" identifier = (binary_expression "pQVar16 + pPVar9[5].offset" identifier + (field_expression "pPVar9[5].offset" (subscript_expression "pPVar9[5]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "pQVar16 = pQVar16 + sVar7;" (assignment_expression "pQVar16 = pQVar16 + sVar7" identifier = (binary_expression "pQVar16 + sVar7" identifier + identifier)) ;) (expression_statement "*puVar19 = (char)(short)ROUND(*pdVar2);" (assignment_expression "*puVar19 = (char)(short)ROUND(*pdVar2)" (pointer_expression "*puVar19" * identifier) = (cast_expression "(char)(short)ROUND(*pdVar2)" ( (type_descriptor "char" primitive_type) ) (cast_expression "(short)ROUND(*pdVar2)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(*pdVar2)" identifier (argument_list "(*pdVar2)" ( (pointer_expression "*pdVar2" * identifier) )))))) ;) (expression_statement "puVar19 = puVar21;" (assignment_expression "puVar19 = puVar21" identifier = identifier) ;) (if_statement "if (puVar21 == memory_00 + sVar14) goto LAB_00279a01;" if (parenthesized_expression "(puVar21 == memory_00 + sVar14)" ( (binary_expression "puVar21 == memory_00 + sVar14" identifier == (binary_expression "memory_00 + sVar14" identifier + identifier)) )) (goto_statement "goto LAB_00279a01;" goto statement_identifier ;)) })) (expression_statement "*puVar19 = 0;" (assignment_expression "*puVar19 = 0" (pointer_expression "*puVar19" * identifier) = number_literal) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) (expression_statement "pQVar16 = pQVar16 + sVar7;" (assignment_expression "pQVar16 = pQVar16 + sVar7" identifier = (binary_expression "pQVar16 + sVar7" identifier + identifier)) ;) }) while (parenthesized_expression "(puVar19 != memory_00 + sVar14)" ( (binary_expression "puVar19 != memory_00 + sVar14" identifier != (binary_expression "memory_00 + sVar14" identifier + identifier)) )) ;) })) (labeled_statement "LAB_00279a01:\n              sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels);" statement_identifier : (expression_statement "sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels);" (assignment_expression "sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels)" identifier = (call_expression "EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels)" identifier (argument_list "(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                   (size_t)pEVar15,(uchar *)pixels)" ( identifier , (cast_expression "(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29))" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22(uVar32,CONCAT11(uVar30,uVar29))" identifier (argument_list "(uVar32,CONCAT11(uVar30,uVar29))" ( identifier , (call_expression "CONCAT11(uVar30,uVar29)" identifier (argument_list "(uVar30,uVar29)" ( identifier , identifier ))) )))) , (cast_expression "(size_t)pEVar15" ( (type_descriptor "size_t" primitive_type) ) identifier) , (cast_expression "(uchar *)pixels" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (expression_statement "uVar1 = uVar1 + sVar14;" (assignment_expression "uVar1 = uVar1 + sVar14" identifier = (binary_expression "uVar1 + sVar14" identifier + identifier)) ;) (if_statement "if ((image->previous == (_Image *)0x0) &&\n                 (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse)) break;" if (parenthesized_expression "((image->previous == (_Image *)0x0) &&\n                 (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse))" ( (binary_expression "(image->previous == (_Image *)0x0) &&\n                 (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse)" (parenthesized_expression "(image->previous == (_Image *)0x0)" ( (binary_expression "image->previous == (_Image *)0x0" (field_expression "image->previous" identifier -> field_identifier) == (cast_expression "(_Image *)0x0" ( (type_descriptor "_Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse)" ( (comma_expression "MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows), MVar11 == MagickFalse" (assignment_expression "MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows)" identifier = (call_expression "SetImageProgress(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows)" identifier (argument_list "(image,"Save/Image",CONCAT44(local_98,local_9c),\n                                            (ulonglong)image->rows)" ( identifier , (string_literal ""Save/Image"" " string_content ") , (call_expression "CONCAT44(local_98,local_9c)" identifier (argument_list "(local_98,local_9c)" ( identifier , identifier ))) , (cast_expression "(ulonglong)image->rows" ( (type_descriptor "ulonglong" type_identifier) ) (field_expression "image->rows" identifier -> field_identifier)) )))) , (binary_expression "MVar11 == MagickFalse" identifier == identifier)) ))) )) (break_statement "break;" break ;)) (expression_statement "local_a0 = local_a0 + 1;" (assignment_expression "local_a0 = local_a0 + 1" identifier = (binary_expression "local_a0 + 1" identifier + number_literal)) ;) (expression_statement "bVar25 = 0xfffffffe < local_9c;" (assignment_expression "bVar25 = 0xfffffffe < local_9c" identifier = (binary_expression "0xfffffffe < local_9c" number_literal < identifier)) ;) (expression_statement "local_9c = (undefined1 *)((int)local_9c + 1);" (assignment_expression "local_9c = (undefined1 *)((int)local_9c + 1)" identifier = (cast_expression "(undefined1 *)((int)local_9c + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 1)" ( (binary_expression "(int)local_9c + 1" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_98 = local_98 + (uint)bVar25;" (assignment_expression "local_98 = local_98 + (uint)bVar25" identifier = (binary_expression "local_98 + (uint)bVar25" identifier + (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "((int)local_a0 < (int)image->rows)" ( (binary_expression "(int)local_a0 < (int)image->rows" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier))) )) ;) (goto_statement "goto LAB_002792ae;" goto statement_identifier ;) })) }) (else_clause "else {\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          if (image_info->compression == JPEGCompression) {\n            uVar28 = 0;\n            uVar29 = 0;\n            uVar31 = 0;\n            pixels_00 = extraout_ECX;\n            memset(memory_00,0,local_94);\n            if (0 < (int)image->rows) {\n              iVar18 = 0;\n              uVar1 = 0;\n              do {\n                iVar18 = iVar18 + 1;\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00);\n                uVar1 = uVar1 + sVar14;\n              } while (iVar18 < (int)image->rows);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            sVar14 = image->columns;\n            local_a4 = memory_00 + sVar14 * 3;\n            if (0 < (int)image->rows) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar18 = 0;\n              uVar1 = 0;\n              while (uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0) {\n                sVar14 = image->columns;\n                puVar19 = memory_00 + sVar14;\n                puVar21 = puVar19 + sVar14;\n                PVar8 = image->alpha_trait;\n                local_9c = puVar19;\n                local_90 = puVar21;\n                local_8c = memory_00;\n                if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }\n                if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);\n                uVar1 = uVar1 + sVar14;\n                if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;\n                iVar18 = iVar18 + 1;\n                bVar25 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar25;\n                if ((int)image->rows <= iVar18) break;\n                sVar14 = image->columns;\n              }\nLAB_002792ae:\n              if ((uVar1 & 1) != 0) {\n                WriteBlobByte(image,'\0');\n              }\n            }\n          }\n        }" else (compound_statement "{\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,0);\n          WriteBlobMSBShort(image,value_00);\n          WriteBlobMSBShort(image,value);\n          WriteBlobMSBShort(image,(ushort)local_90);\n          if (image_info->compression == JPEGCompression) {\n            uVar28 = 0;\n            uVar29 = 0;\n            uVar31 = 0;\n            pixels_00 = extraout_ECX;\n            memset(memory_00,0,local_94);\n            if (0 < (int)image->rows) {\n              iVar18 = 0;\n              uVar1 = 0;\n              do {\n                iVar18 = iVar18 + 1;\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00);\n                uVar1 = uVar1 + sVar14;\n              } while (iVar18 < (int)image->rows);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            sVar14 = image->columns;\n            local_a4 = memory_00 + sVar14 * 3;\n            if (0 < (int)image->rows) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar18 = 0;\n              uVar1 = 0;\n              while (uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0) {\n                sVar14 = image->columns;\n                puVar19 = memory_00 + sVar14;\n                puVar21 = puVar19 + sVar14;\n                PVar8 = image->alpha_trait;\n                local_9c = puVar19;\n                local_90 = puVar21;\n                local_8c = memory_00;\n                if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }\n                if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);\n                uVar1 = uVar1 + sVar14;\n                if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;\n                iVar18 = iVar18 + 1;\n                bVar25 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar25;\n                if ((int)image->rows <= iVar18) break;\n                sVar14 = image->columns;\n              }\nLAB_002792ae:\n              if ((uVar1 & 1) != 0) {\n                WriteBlobByte(image,'\0');\n              }\n            }\n          }\n        }" { (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,value_00);" (call_expression "WriteBlobMSBShort(image,value_00)" identifier (argument_list "(image,value_00)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(image,value);" (call_expression "WriteBlobMSBShort(image,value)" identifier (argument_list "(image,value)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,value_00);" (call_expression "WriteBlobMSBShort(image,value_00)" identifier (argument_list "(image,value_00)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(image,value);" (call_expression "WriteBlobMSBShort(image,value)" identifier (argument_list "(image,value)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(image,(ushort)local_90);" (call_expression "WriteBlobMSBShort(image,(ushort)local_90)" identifier (argument_list "(image,(ushort)local_90)" ( identifier , (cast_expression "(ushort)local_90" ( (type_descriptor "ushort" type_identifier) ) identifier) ))) ;) (if_statement "if (image_info->compression == JPEGCompression) {\n            uVar28 = 0;\n            uVar29 = 0;\n            uVar31 = 0;\n            pixels_00 = extraout_ECX;\n            memset(memory_00,0,local_94);\n            if (0 < (int)image->rows) {\n              iVar18 = 0;\n              uVar1 = 0;\n              do {\n                iVar18 = iVar18 + 1;\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00);\n                uVar1 = uVar1 + sVar14;\n              } while (iVar18 < (int)image->rows);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            sVar14 = image->columns;\n            local_a4 = memory_00 + sVar14 * 3;\n            if (0 < (int)image->rows) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar18 = 0;\n              uVar1 = 0;\n              while (uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0) {\n                sVar14 = image->columns;\n                puVar19 = memory_00 + sVar14;\n                puVar21 = puVar19 + sVar14;\n                PVar8 = image->alpha_trait;\n                local_9c = puVar19;\n                local_90 = puVar21;\n                local_8c = memory_00;\n                if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }\n                if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);\n                uVar1 = uVar1 + sVar14;\n                if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;\n                iVar18 = iVar18 + 1;\n                bVar25 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar25;\n                if ((int)image->rows <= iVar18) break;\n                sVar14 = image->columns;\n              }\nLAB_002792ae:\n              if ((uVar1 & 1) != 0) {\n                WriteBlobByte(image,'\0');\n              }\n            }\n          }" if (parenthesized_expression "(image_info->compression == JPEGCompression)" ( (binary_expression "image_info->compression == JPEGCompression" (field_expression "image_info->compression" identifier -> field_identifier) == identifier) )) (compound_statement "{\n            uVar28 = 0;\n            uVar29 = 0;\n            uVar31 = 0;\n            pixels_00 = extraout_ECX;\n            memset(memory_00,0,local_94);\n            if (0 < (int)image->rows) {\n              iVar18 = 0;\n              uVar1 = 0;\n              do {\n                iVar18 = iVar18 + 1;\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00);\n                uVar1 = uVar1 + sVar14;\n              } while (iVar18 < (int)image->rows);\n              goto LAB_002792ae;\n            }\n          }" { (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "uVar31 = 0;" (assignment_expression "uVar31 = 0" identifier = number_literal) ;) (expression_statement "pixels_00 = extraout_ECX;" (assignment_expression "pixels_00 = extraout_ECX" identifier = identifier) ;) (expression_statement "memset(memory_00,0,local_94);" (call_expression "memset(memory_00,0,local_94)" identifier (argument_list "(memory_00,0,local_94)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (0 < (int)image->rows) {\n              iVar18 = 0;\n              uVar1 = 0;\n              do {\n                iVar18 = iVar18 + 1;\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00);\n                uVar1 = uVar1 + sVar14;\n              } while (iVar18 < (int)image->rows);\n              goto LAB_002792ae;\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              iVar18 = 0;\n              uVar1 = 0;\n              do {\n                iVar18 = iVar18 + 1;\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00);\n                uVar1 = uVar1 + sVar14;\n              } while (iVar18 < (int)image->rows);\n              goto LAB_002792ae;\n            }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar18 = iVar18 + 1;\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00);\n                uVar1 = uVar1 + sVar14;\n              } while (iVar18 < (int)image->rows);" do (compound_statement "{\n                iVar18 = iVar18 + 1;\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00);\n                uVar1 = uVar1 + sVar14;\n              }" { (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00);" (assignment_expression "sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00)" identifier = (call_expression "EncodeImage(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00)" identifier (argument_list "(pIVar12,(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28)),\n                                     local_94,pixels_00)" ( identifier , (cast_expression "(uchar *)CONCAT22(uVar31,CONCAT11(uVar29,uVar28))" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22(uVar31,CONCAT11(uVar29,uVar28))" identifier (argument_list "(uVar31,CONCAT11(uVar29,uVar28))" ( identifier , (call_expression "CONCAT11(uVar29,uVar28)" identifier (argument_list "(uVar29,uVar28)" ( identifier , identifier ))) )))) , identifier , identifier )))) ;) (expression_statement "uVar1 = uVar1 + sVar14;" (assignment_expression "uVar1 = uVar1 + sVar14" identifier = (binary_expression "uVar1 + sVar14" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar18 < (int)image->rows)" ( (binary_expression "iVar18 < (int)image->rows" identifier < (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier))) )) ;) (goto_statement "goto LAB_002792ae;" goto statement_identifier ;) })) }) (else_clause "else {\n            sVar14 = image->columns;\n            local_a4 = memory_00 + sVar14 * 3;\n            if (0 < (int)image->rows) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar18 = 0;\n              uVar1 = 0;\n              while (uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0) {\n                sVar14 = image->columns;\n                puVar19 = memory_00 + sVar14;\n                puVar21 = puVar19 + sVar14;\n                PVar8 = image->alpha_trait;\n                local_9c = puVar19;\n                local_90 = puVar21;\n                local_8c = memory_00;\n                if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }\n                if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);\n                uVar1 = uVar1 + sVar14;\n                if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;\n                iVar18 = iVar18 + 1;\n                bVar25 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar25;\n                if ((int)image->rows <= iVar18) break;\n                sVar14 = image->columns;\n              }\nLAB_002792ae:\n              if ((uVar1 & 1) != 0) {\n                WriteBlobByte(image,'\0');\n              }\n            }\n          }" else (compound_statement "{\n            sVar14 = image->columns;\n            local_a4 = memory_00 + sVar14 * 3;\n            if (0 < (int)image->rows) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar18 = 0;\n              uVar1 = 0;\n              while (uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0) {\n                sVar14 = image->columns;\n                puVar19 = memory_00 + sVar14;\n                puVar21 = puVar19 + sVar14;\n                PVar8 = image->alpha_trait;\n                local_9c = puVar19;\n                local_90 = puVar21;\n                local_8c = memory_00;\n                if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }\n                if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);\n                uVar1 = uVar1 + sVar14;\n                if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;\n                iVar18 = iVar18 + 1;\n                bVar25 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar25;\n                if ((int)image->rows <= iVar18) break;\n                sVar14 = image->columns;\n              }\nLAB_002792ae:\n              if ((uVar1 & 1) != 0) {\n                WriteBlobByte(image,'\0');\n              }\n            }\n          }" { (expression_statement "sVar14 = image->columns;" (assignment_expression "sVar14 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (expression_statement "local_a4 = memory_00 + sVar14 * 3;" (assignment_expression "local_a4 = memory_00 + sVar14 * 3" identifier = (binary_expression "memory_00 + sVar14 * 3" identifier + (binary_expression "sVar14 * 3" identifier * number_literal))) ;) (if_statement "if (0 < (int)image->rows) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar18 = 0;\n              uVar1 = 0;\n              while (uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0) {\n                sVar14 = image->columns;\n                puVar19 = memory_00 + sVar14;\n                puVar21 = puVar19 + sVar14;\n                PVar8 = image->alpha_trait;\n                local_9c = puVar19;\n                local_90 = puVar21;\n                local_8c = memory_00;\n                if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }\n                if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);\n                uVar1 = uVar1 + sVar14;\n                if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;\n                iVar18 = iVar18 + 1;\n                bVar25 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar25;\n                if ((int)image->rows <= iVar18) break;\n                sVar14 = image->columns;\n              }\nLAB_002792ae:\n              if ((uVar1 & 1) != 0) {\n                WriteBlobByte(image,'\0');\n              }\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_5c = 0;\n              local_58 = 0;\n              iVar18 = 0;\n              uVar1 = 0;\n              while (uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0) {\n                sVar14 = image->columns;\n                puVar19 = memory_00 + sVar14;\n                puVar21 = puVar19 + sVar14;\n                PVar8 = image->alpha_trait;\n                local_9c = puVar19;\n                local_90 = puVar21;\n                local_8c = memory_00;\n                if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }\n                if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);\n                uVar1 = uVar1 + sVar14;\n                if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;\n                iVar18 = iVar18 + 1;\n                bVar25 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar25;\n                if ((int)image->rows <= iVar18) break;\n                sVar14 = image->columns;\n              }\nLAB_002792ae:\n              if ((uVar1 & 1) != 0) {\n                WriteBlobByte(image,'\0');\n              }\n            }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) (while_statement "while (uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0) {\n                sVar14 = image->columns;\n                puVar19 = memory_00 + sVar14;\n                puVar21 = puVar19 + sVar14;\n                PVar8 = image->alpha_trait;\n                local_9c = puVar19;\n                local_90 = puVar21;\n                local_8c = memory_00;\n                if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }\n                if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);\n                uVar1 = uVar1 + sVar14;\n                if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;\n                iVar18 = iVar18 + 1;\n                bVar25 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar25;\n                if ((int)image->rows <= iVar18) break;\n                sVar14 = image->columns;\n              }" while (parenthesized_expression "(uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0)" ( (comma_expression "uVar29 = (char)exception, uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0" (assignment_expression "uVar29 = (char)exception" identifier = (cast_expression "(char)exception" ( (type_descriptor "char" primitive_type) ) identifier)) , (comma_expression "uVar30 = uVar28, uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0" (assignment_expression "uVar30 = uVar28" identifier = identifier) , (comma_expression "uVar32 = uVar31,\n                    pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0" (assignment_expression "uVar32 = uVar31" identifier = identifier) , (comma_expression "pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception),\n                    pQVar16 != (Quantum *)0x0" (assignment_expression "pQVar16 = GetVirtualPixels(image,0,iVar18,sVar14,1,exception)" identifier = (call_expression "GetVirtualPixels(image,0,iVar18,sVar14,1,exception)" identifier (argument_list "(image,0,iVar18,sVar14,1,exception)" ( identifier , number_literal , identifier , identifier , number_literal , identifier )))) , (binary_expression "pQVar16 != (Quantum *)0x0" identifier != (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))))) )) (compound_statement "{\n                sVar14 = image->columns;\n                puVar19 = memory_00 + sVar14;\n                puVar21 = puVar19 + sVar14;\n                PVar8 = image->alpha_trait;\n                local_9c = puVar19;\n                local_90 = puVar21;\n                local_8c = memory_00;\n                if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }\n                if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }\n                sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);\n                uVar1 = uVar1 + sVar14;\n                if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;\n                iVar18 = iVar18 + 1;\n                bVar25 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar25;\n                if ((int)image->rows <= iVar18) break;\n                sVar14 = image->columns;\n              }" { (expression_statement "sVar14 = image->columns;" (assignment_expression "sVar14 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (expression_statement "puVar19 = memory_00 + sVar14;" (assignment_expression "puVar19 = memory_00 + sVar14" identifier = (binary_expression "memory_00 + sVar14" identifier + identifier)) ;) (expression_statement "puVar21 = puVar19 + sVar14;" (assignment_expression "puVar21 = puVar19 + sVar14" identifier = (binary_expression "puVar19 + sVar14" identifier + identifier)) ;) (expression_statement "PVar8 = image->alpha_trait;" (assignment_expression "PVar8 = image->alpha_trait" identifier = (field_expression "image->alpha_trait" identifier -> field_identifier)) ;) (expression_statement "local_9c = puVar19;" (assignment_expression "local_9c = puVar19" identifier = identifier) ;) (expression_statement "local_90 = puVar21;" (assignment_expression "local_90 = puVar21" identifier = identifier) ;) (expression_statement "local_8c = memory_00;" (assignment_expression "local_8c = memory_00" identifier = identifier) ;) (if_statement "if (PVar8 != UndefinedPixelTrait) {\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }" if (parenthesized_expression "(PVar8 != UndefinedPixelTrait)" ( (binary_expression "PVar8 != UndefinedPixelTrait" identifier != identifier) )) (compound_statement "{\n                  local_90 = puVar21 + sVar14;\n                  local_a4 = memory_00;\n                  local_9c = puVar21;\n                  local_8c = puVar19;\n                }" { (expression_statement "local_90 = puVar21 + sVar14;" (assignment_expression "local_90 = puVar21 + sVar14" identifier = (binary_expression "puVar21 + sVar14" identifier + identifier)) ;) (expression_statement "local_a4 = memory_00;" (assignment_expression "local_a4 = memory_00" identifier = identifier) ;) (expression_statement "local_9c = puVar21;" (assignment_expression "local_9c = puVar21" identifier = identifier) ;) (expression_statement "local_8c = puVar19;" (assignment_expression "local_8c = puVar19" identifier = identifier) ;) })) (if_statement "if (0 < (int)sVar14) {\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }" if (parenthesized_expression "(0 < (int)sVar14)" ( (binary_expression "0 < (int)sVar14" number_literal < (cast_expression "(int)sVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  sVar7 = image->number_channels;\n                  sVar22 = 0;\n                  pPVar9 = image->channel_map;\n                  puVar19 = local_a4;\n                  do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);\n                }" { (expression_statement "sVar7 = image->number_channels;" (assignment_expression "sVar7 = image->number_channels" identifier = (field_expression "image->number_channels" identifier -> field_identifier)) ;) (expression_statement "sVar22 = 0;" (assignment_expression "sVar22 = 0" identifier = number_literal) ;) (expression_statement "pPVar9 = image->channel_map;" (assignment_expression "pPVar9 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "puVar19 = local_a4;" (assignment_expression "puVar19 = local_a4" identifier = identifier) ;) (do_statement "do {\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  } while (sVar14 != sVar22);" do (compound_statement "{\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[sVar22] = uVar23;\n                    uVar23 = 0;\n                    if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[sVar22] = uVar23;\n                    local_a4 = puVar19;\n                    if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }\n                    pQVar16 = pQVar16 + sVar7;\n                    sVar22 = sVar22 + 1;\n                    puVar19 = local_a4;\n                  }" { (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < pQVar16[pPVar9->offset]) {\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }" if (parenthesized_expression "(0.0 < pQVar16[pPVar9->offset])" ( (binary_expression "0.0 < pQVar16[pPVar9->offset]" number_literal < (subscript_expression "pQVar16[pPVar9->offset]" identifier [ (field_expression "pPVar9->offset" identifier -> field_identifier) ])) )) (compound_statement "{\n                      dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }" { (expression_statement "dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c;" (assignment_expression "dVar3 = pQVar16[pPVar9->offset] / (double)DAT_002e814c" identifier = (binary_expression "pQVar16[pPVar9->offset] / (double)DAT_002e814c" (subscript_expression "pQVar16[pPVar9->offset]" identifier [ (field_expression "pPVar9->offset" identifier -> field_identifier) ]) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }" if (parenthesized_expression "((double)DAT_002e8150 <= dVar3)" ( (binary_expression "(double)DAT_002e8150 <= dVar3" (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                        uVar23 = 0xff;\n                      }" { (expression_statement "uVar23 = 0xff;" (assignment_expression "uVar23 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }" else (compound_statement "{\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }" { (expression_statement "uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);" (assignment_expression "uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8)" identifier = (cast_expression "(undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8)" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(short)ROUND(dVar3 + (double)DAT_002df2b8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar3 + (double)DAT_002df2b8)" identifier (argument_list "(dVar3 + (double)DAT_002df2b8)" ( (binary_expression "dVar3 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) }))) })) (expression_statement "local_8c[sVar22] = uVar23;" (assignment_expression "local_8c[sVar22] = uVar23" (subscript_expression "local_8c[sVar22]" identifier [ identifier ]) = identifier) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < pQVar16[pPVar9[1].offset]) {\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }" if (parenthesized_expression "(0.0 < pQVar16[pPVar9[1].offset])" ( (binary_expression "0.0 < pQVar16[pPVar9[1].offset]" number_literal < (subscript_expression "pQVar16[pPVar9[1].offset]" identifier [ (field_expression "pPVar9[1].offset" (subscript_expression "pPVar9[1]" identifier [ number_literal ]) . field_identifier) ])) )) (compound_statement "{\n                      dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }" { (expression_statement "dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c;" (assignment_expression "dVar3 = pQVar16[pPVar9[1].offset] / (double)DAT_002e814c" identifier = (binary_expression "pQVar16[pPVar9[1].offset] / (double)DAT_002e814c" (subscript_expression "pQVar16[pPVar9[1].offset]" identifier [ (field_expression "pPVar9[1].offset" (subscript_expression "pPVar9[1]" identifier [ number_literal ]) . field_identifier) ]) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }" if (parenthesized_expression "((double)DAT_002e8150 <= dVar3)" ( (binary_expression "(double)DAT_002e8150 <= dVar3" (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                        uVar23 = 0xff;\n                      }" { (expression_statement "uVar23 = 0xff;" (assignment_expression "uVar23 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }" else (compound_statement "{\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }" { (expression_statement "uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);" (assignment_expression "uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8)" identifier = (cast_expression "(undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8)" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(short)ROUND(dVar3 + (double)DAT_002df2b8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar3 + (double)DAT_002df2b8)" identifier (argument_list "(dVar3 + (double)DAT_002df2b8)" ( (binary_expression "dVar3 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) }))) })) (expression_statement "local_9c[sVar22] = uVar23;" (assignment_expression "local_9c[sVar22] = uVar23" (subscript_expression "local_9c[sVar22]" identifier [ identifier ]) = identifier) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < pQVar16[pPVar9[2].offset]) {\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }" if (parenthesized_expression "(0.0 < pQVar16[pPVar9[2].offset])" ( (binary_expression "0.0 < pQVar16[pPVar9[2].offset]" number_literal < (subscript_expression "pQVar16[pPVar9[2].offset]" identifier [ (field_expression "pPVar9[2].offset" (subscript_expression "pPVar9[2]" identifier [ number_literal ]) . field_identifier) ])) )) (compound_statement "{\n                      dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }\n                    }" { (expression_statement "dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c;" (assignment_expression "dVar3 = pQVar16[pPVar9[2].offset] / (double)DAT_002e814c" identifier = (binary_expression "pQVar16[pPVar9[2].offset] / (double)DAT_002e814c" (subscript_expression "pQVar16[pPVar9[2].offset]" identifier [ (field_expression "pPVar9[2].offset" (subscript_expression "pPVar9[2]" identifier [ number_literal ]) . field_identifier) ]) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_002e8150 <= dVar3) {\n                        uVar23 = 0xff;\n                      }\n                      else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }" if (parenthesized_expression "((double)DAT_002e8150 <= dVar3)" ( (binary_expression "(double)DAT_002e8150 <= dVar3" (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                        uVar23 = 0xff;\n                      }" { (expression_statement "uVar23 = 0xff;" (assignment_expression "uVar23 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }" else (compound_statement "{\n                        uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                      }" { (expression_statement "uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);" (assignment_expression "uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8)" identifier = (cast_expression "(undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8)" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(short)ROUND(dVar3 + (double)DAT_002df2b8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar3 + (double)DAT_002df2b8)" identifier (argument_list "(dVar3 + (double)DAT_002df2b8)" ( (binary_expression "dVar3 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) }))) })) (expression_statement "local_90[sVar22] = uVar23;" (assignment_expression "local_90[sVar22] = uVar23" (subscript_expression "local_90[sVar22]" identifier [ identifier ]) = identifier) ;) (expression_statement "local_a4 = puVar19;" (assignment_expression "local_a4 = puVar19" identifier = identifier) ;) (if_statement "if (PVar8 != UndefinedPixelTrait) {\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }" if (parenthesized_expression "(PVar8 != UndefinedPixelTrait)" ( (binary_expression "PVar8 != UndefinedPixelTrait" identifier != identifier) )) (compound_statement "{\n                      local_a4 = puVar19 + 1;\n                      uVar23 = 0xff;\n                      if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar19 = uVar23;\n                    }" { (expression_statement "local_a4 = puVar19 + 1;" (assignment_expression "local_a4 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) (expression_statement "uVar23 = 0xff;" (assignment_expression "uVar23 = 0xff" identifier = number_literal) ;) (if_statement "if (pPVar9[4].traits != UndefinedPixelTrait) {\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }" if (parenthesized_expression "(pPVar9[4].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar9[4].traits != UndefinedPixelTrait" (field_expression "pPVar9[4].traits" (subscript_expression "pPVar9[4]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n                        uVar23 = 0;\n                        if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }" { (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < pQVar16[pPVar9[4].offset]) {\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }" if (parenthesized_expression "(0.0 < pQVar16[pPVar9[4].offset])" ( (binary_expression "0.0 < pQVar16[pPVar9[4].offset]" number_literal < (subscript_expression "pQVar16[pPVar9[4].offset]" identifier [ (field_expression "pPVar9[4].offset" (subscript_expression "pPVar9[4]" identifier [ number_literal ]) . field_identifier) ])) )) (compound_statement "{\n                          dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }" { (expression_statement "dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c;" (assignment_expression "dVar3 = pQVar16[pPVar9[4].offset] / (double)DAT_002e814c" identifier = (binary_expression "pQVar16[pPVar9[4].offset] / (double)DAT_002e814c" (subscript_expression "pQVar16[pPVar9[4].offset]" identifier [ (field_expression "pPVar9[4].offset" (subscript_expression "pPVar9[4]" identifier [ number_literal ]) . field_identifier) ]) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_002e8150 <= dVar3) {\n                            uVar23 = 0xff;\n                          }\n                          else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }" if (parenthesized_expression "((double)DAT_002e8150 <= dVar3)" ( (binary_expression "(double)DAT_002e8150 <= dVar3" (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                            uVar23 = 0xff;\n                          }" { (expression_statement "uVar23 = 0xff;" (assignment_expression "uVar23 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }" else (compound_statement "{\n                            uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }" { (expression_statement "uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8);" (assignment_expression "uVar23 = (undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8)" identifier = (cast_expression "(undefined1)(short)ROUND(dVar3 + (double)DAT_002df2b8)" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(short)ROUND(dVar3 + (double)DAT_002df2b8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar3 + (double)DAT_002df2b8)" identifier (argument_list "(dVar3 + (double)DAT_002df2b8)" ( (binary_expression "dVar3 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) }))) })) })) (expression_statement "*puVar19 = uVar23;" (assignment_expression "*puVar19 = uVar23" (pointer_expression "*puVar19" * identifier) = identifier) ;) })) (expression_statement "pQVar16 = pQVar16 + sVar7;" (assignment_expression "pQVar16 = pQVar16 + sVar7" identifier = (binary_expression "pQVar16 + sVar7" identifier + identifier)) ;) (expression_statement "sVar22 = sVar22 + 1;" (assignment_expression "sVar22 = sVar22 + 1" identifier = (binary_expression "sVar22 + 1" identifier + number_literal)) ;) (expression_statement "puVar19 = local_a4;" (assignment_expression "puVar19 = local_a4" identifier = identifier) ;) }) while (parenthesized_expression "(sVar14 != sVar22)" ( (binary_expression "sVar14 != sVar22" identifier != identifier) )) ;) })) (expression_statement "sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels);" (assignment_expression "sVar14 = EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels)" identifier = (call_expression "EncodeImage(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels)" identifier (argument_list "(pIVar12,(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29)),\n                                     (size_t)pEVar15,(uchar *)pixels)" ( identifier , (cast_expression "(uchar *)CONCAT22(uVar32,CONCAT11(uVar30,uVar29))" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22(uVar32,CONCAT11(uVar30,uVar29))" identifier (argument_list "(uVar32,CONCAT11(uVar30,uVar29))" ( identifier , (call_expression "CONCAT11(uVar30,uVar29)" identifier (argument_list "(uVar30,uVar29)" ( identifier , identifier ))) )))) , (cast_expression "(size_t)pEVar15" ( (type_descriptor "size_t" primitive_type) ) identifier) , (cast_expression "(uchar *)pixels" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "uVar1 = uVar1 + sVar14;" (assignment_expression "uVar1 = uVar1 + sVar14" identifier = (binary_expression "uVar1 + sVar14" identifier + identifier)) ;) (if_statement "if ((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))\n                break;" if (parenthesized_expression "((image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse))" ( (binary_expression "(image->previous == (_Image *)0x0) &&\n                   (MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse)" (parenthesized_expression "(image->previous == (_Image *)0x0)" ( (binary_expression "image->previous == (_Image *)0x0" (field_expression "image->previous" identifier -> field_identifier) == (cast_expression "(_Image *)0x0" ( (type_descriptor "_Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse)" ( (comma_expression "MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows), MVar11 == MagickFalse" (assignment_expression "MVar11 = SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows)" identifier = (call_expression "SetImageProgress(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows)" identifier (argument_list "(image,"Save/Image",CONCAT44(local_58,local_5c),\n                                              (ulonglong)image->rows)" ( identifier , (string_literal ""Save/Image"" " string_content ") , (call_expression "CONCAT44(local_58,local_5c)" identifier (argument_list "(local_58,local_5c)" ( identifier , identifier ))) , (cast_expression "(ulonglong)image->rows" ( (type_descriptor "ulonglong" type_identifier) ) (field_expression "image->rows" identifier -> field_identifier)) )))) , (binary_expression "MVar11 == MagickFalse" identifier == identifier)) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "bVar25 = 0xfffffffe < local_5c;" (assignment_expression "bVar25 = 0xfffffffe < local_5c" identifier = (binary_expression "0xfffffffe < local_5c" number_literal < identifier)) ;) (expression_statement "local_5c = local_5c + 1;" (assignment_expression "local_5c = local_5c + 1" identifier = (binary_expression "local_5c + 1" identifier + number_literal)) ;) (expression_statement "local_58 = local_58 + (uint)bVar25;" (assignment_expression "local_58 = local_58 + (uint)bVar25" identifier = (binary_expression "local_58 + (uint)bVar25" identifier + (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((int)image->rows <= iVar18) break;" if (parenthesized_expression "((int)image->rows <= iVar18)" ( (binary_expression "(int)image->rows <= iVar18" (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier)) <= identifier) )) (break_statement "break;" break ;)) (expression_statement "sVar14 = image->columns;" (assignment_expression "sVar14 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) })) (labeled_statement "LAB_002792ae:\n              if ((uVar1 & 1) != 0) {\n                WriteBlobByte(image,'\0');\n              }" statement_identifier : (if_statement "if ((uVar1 & 1) != 0) {\n                WriteBlobByte(image,'\0');\n              }" if (parenthesized_expression "((uVar1 & 1) != 0)" ( (binary_expression "(uVar1 & 1) != 0" (parenthesized_expression "(uVar1 & 1)" ( (binary_expression "uVar1 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                WriteBlobByte(image,'\0');\n              }" { (expression_statement "WriteBlobByte(image,'\0');" (call_expression "WriteBlobByte(image,'\0')" identifier (argument_list "(image,'\0')" ( identifier , (char_literal "'\0'" ' escape_sequence ') ))) ;) }))) })) }))) }))) (expression_statement "WriteBlobMSBShort(image,0xff);" (call_expression "WriteBlobMSBShort(image,0xff)" identifier (argument_list "(image,0xff)" ( identifier , number_literal ))) ;) (expression_statement "TellBlob(image);" (call_expression "TellBlob(image)" identifier (argument_list "(image)" ( identifier ))) ;) (expression_statement "MVar27 = SeekBlob(image,0x200,0);" (assignment_expression "MVar27 = SeekBlob(image,0x200,0)" identifier = (call_expression "SeekBlob(image,0x200,0)" identifier (argument_list "(image,0x200,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "WriteBlobMSBShort(image,(ushort)MVar27);" (call_expression "WriteBlobMSBShort(image,(ushort)MVar27)" identifier (argument_list "(image,(ushort)MVar27)" ( identifier , (cast_expression "(ushort)MVar27" ( (type_descriptor "ushort" type_identifier) ) identifier) ))) ;) (expression_statement "RelinquishMagickMemory(memory_00);" (call_expression "RelinquishMagickMemory(memory_00)" identifier (argument_list "(memory_00)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(pIVar12);" (call_expression "RelinquishMagickMemory(pIVar12)" identifier (argument_list "(pIVar12)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(memory);" (call_expression "RelinquishMagickMemory(memory)" identifier (argument_list "(memory)" ( identifier ))) ;) (expression_statement "CloseBlob(image);" (call_expression "CloseBlob(image)" identifier (argument_list "(image)" ( identifier ))) ;) (expression_statement "MVar11 = MagickTrue;" (assignment_expression "MVar11 = MagickTrue" identifier = identifier) ;) (goto_statement "goto LAB_0027872e;" goto statement_identifier ;) })) (labeled_statement "LAB_0027924d:\n      RelinquishMagickMemory(pIVar12);" statement_identifier : (expression_statement "RelinquishMagickMemory(pIVar12);" (call_expression "RelinquishMagickMemory(pIVar12)" identifier (argument_list "(pIVar12)" ( identifier ))) ;)) }))) (if_statement "if (memory != (ExceptionInfo *)0x0) {\n      RelinquishMagickMemory(memory);\n    }" if (parenthesized_expression "(memory != (ExceptionInfo *)0x0)" ( (binary_expression "memory != (ExceptionInfo *)0x0" identifier != (cast_expression "(ExceptionInfo *)0x0" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      RelinquishMagickMemory(memory);\n    }" { (expression_statement "RelinquishMagickMemory(memory);" (call_expression "RelinquishMagickMemory(memory)" identifier (argument_list "(memory)" ( identifier ))) ;) })) (expression_statement "ThrowMagickException\n              (exception,"coders/pict.c","WritePICTImage",0x710,ErrorException,\n               "MemoryAllocationFailed","`%s\'",0x6e,image->filename);" (call_expression "ThrowMagickException\n              (exception,"coders/pict.c","WritePICTImage",0x710,ErrorException,\n               "MemoryAllocationFailed","`%s\'",0x6e,image->filename)" identifier (argument_list "(exception,"coders/pict.c","WritePICTImage",0x710,ErrorException,\n               "MemoryAllocationFailed","`%s\'",0x6e,image->filename)" ( identifier , (string_literal ""coders/pict.c"" " string_content ") , (string_literal ""WritePICTImage"" " string_content ") , number_literal , identifier , (string_literal ""MemoryAllocationFailed"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , number_literal , (field_expression "image->filename" identifier -> field_identifier) ))) ;) (expression_statement "p_Var6 = (_Image *)image_info->adjoin;" (assignment_expression "p_Var6 = (_Image *)image_info->adjoin" identifier = (cast_expression "(_Image *)image_info->adjoin" ( (type_descriptor "_Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "image_info->adjoin" identifier -> field_identifier))) ;) (expression_statement "pIVar12 = image;" (assignment_expression "pIVar12 = image" identifier = identifier) ;) (while_statement "while (pIVar17 = pIVar12, p_Var6 != (_Image *)0x0) {\n      p_Var6 = pIVar17->previous;\n      pIVar12 = p_Var6;\n      image = pIVar17;\n    }" while (parenthesized_expression "(pIVar17 = pIVar12, p_Var6 != (_Image *)0x0)" ( (comma_expression "pIVar17 = pIVar12, p_Var6 != (_Image *)0x0" (assignment_expression "pIVar17 = pIVar12" identifier = identifier) , (binary_expression "p_Var6 != (_Image *)0x0" identifier != (cast_expression "(_Image *)0x0" ( (type_descriptor "_Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      p_Var6 = pIVar17->previous;\n      pIVar12 = p_Var6;\n      image = pIVar17;\n    }" { (expression_statement "p_Var6 = pIVar17->previous;" (assignment_expression "p_Var6 = pIVar17->previous" identifier = (field_expression "pIVar17->previous" identifier -> field_identifier)) ;) (expression_statement "pIVar12 = p_Var6;" (assignment_expression "pIVar12 = p_Var6" identifier = identifier) ;) (expression_statement "image = pIVar17;" (assignment_expression "image = pIVar17" identifier = identifier) ;) })) }) (else_clause "else {\n    ThrowMagickException\n              (exception,"coders/pict.c","WritePICTImage",0x6bc,ImageError,\n               "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename);\n    if (image_info->adjoin != MagickFalse) {\n      pIVar12 = image->previous;\n      while (pIVar17 = pIVar12, pIVar17 != (Image *)0x0) {\n        image = pIVar17;\n        pIVar12 = pIVar17->previous;\n      }\n    }\n  }" else (compound_statement "{\n    ThrowMagickException\n              (exception,"coders/pict.c","WritePICTImage",0x6bc,ImageError,\n               "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename);\n    if (image_info->adjoin != MagickFalse) {\n      pIVar12 = image->previous;\n      while (pIVar17 = pIVar12, pIVar17 != (Image *)0x0) {\n        image = pIVar17;\n        pIVar12 = pIVar17->previous;\n      }\n    }\n  }" { (expression_statement "ThrowMagickException\n              (exception,"coders/pict.c","WritePICTImage",0x6bc,ImageError,\n               "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename);" (call_expression "ThrowMagickException\n              (exception,"coders/pict.c","WritePICTImage",0x6bc,ImageError,\n               "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename)" identifier (argument_list "(exception,"coders/pict.c","WritePICTImage",0x6bc,ImageError,\n               "WidthOrHeightExceedsLimit","`%s\'",0x2e,image->filename)" ( identifier , (string_literal ""coders/pict.c"" " string_content ") , (string_literal ""WritePICTImage"" " string_content ") , number_literal , identifier , (string_literal ""WidthOrHeightExceedsLimit"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , number_literal , (field_expression "image->filename" identifier -> field_identifier) ))) ;) (if_statement "if (image_info->adjoin != MagickFalse) {\n      pIVar12 = image->previous;\n      while (pIVar17 = pIVar12, pIVar17 != (Image *)0x0) {\n        image = pIVar17;\n        pIVar12 = pIVar17->previous;\n      }\n    }" if (parenthesized_expression "(image_info->adjoin != MagickFalse)" ( (binary_expression "image_info->adjoin != MagickFalse" (field_expression "image_info->adjoin" identifier -> field_identifier) != identifier) )) (compound_statement "{\n      pIVar12 = image->previous;\n      while (pIVar17 = pIVar12, pIVar17 != (Image *)0x0) {\n        image = pIVar17;\n        pIVar12 = pIVar17->previous;\n      }\n    }" { (expression_statement "pIVar12 = image->previous;" (assignment_expression "pIVar12 = image->previous" identifier = (field_expression "image->previous" identifier -> field_identifier)) ;) (while_statement "while (pIVar17 = pIVar12, pIVar17 != (Image *)0x0) {\n        image = pIVar17;\n        pIVar12 = pIVar17->previous;\n      }" while (parenthesized_expression "(pIVar17 = pIVar12, pIVar17 != (Image *)0x0)" ( (comma_expression "pIVar17 = pIVar12, pIVar17 != (Image *)0x0" (assignment_expression "pIVar17 = pIVar12" identifier = identifier) , (binary_expression "pIVar17 != (Image *)0x0" identifier != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        image = pIVar17;\n        pIVar12 = pIVar17->previous;\n      }" { (expression_statement "image = pIVar17;" (assignment_expression "image = pIVar17" identifier = identifier) ;) (expression_statement "pIVar12 = pIVar17->previous;" (assignment_expression "pIVar12 = pIVar17->previous" identifier = (field_expression "pIVar17->previous" identifier -> field_identifier)) ;) })) })) }))) (labeled_statement "LAB_00278720:\n  CloseBlob(image);" statement_identifier : (expression_statement "CloseBlob(image);" (call_expression "CloseBlob(image)" identifier (argument_list "(image)" ( identifier ))) ;)) (expression_statement "MVar11 = MagickFalse;" (assignment_expression "MVar11 = MagickFalse" identifier = identifier) ;) (labeled_statement "LAB_0027872e:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return MVar11;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return MVar11;\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 MVar11;\n  }" { (return_statement "return MVar11;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int FUN_00278530(int *param_1,int *param_2,int param_3)\n\n{\n  double *pdVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar7;\n  int *piVar8;\n  int *piVar9;\n  short sVar10;\n  undefined2 uVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  void *__s;\n  undefined1 *__s_00;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  int iVar18;\n  uint uVar19;\n  int iVar20;\n  undefined4 extraout_ECX;\n  undefined1 *puVar21;\n  undefined4 extraout_ECX_00;\n  undefined1 *puVar22;\n  int iVar23;\n  undefined1 uVar24;\n  undefined4 *puVar25;\n  uint uVar26;\n  uint uVar27;\n  int in_GS_OFFSET;\n  bool bVar28;\n  byte bVar29;\n  undefined1 *local_a4;\n  uint local_a0;\n  undefined1 *local_9c;\n  int local_98;\n  size_t local_94;\n  undefined1 *local_90;\n  undefined1 *local_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  uint local_5c;\n  int local_58;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar29 = 0;\n  uStack_14 = 0x278539;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == (int *)0x0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");\n  }\n  if (param_1[0xc7d] != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");\n  }\n  if (param_2 == (int *)0x0) {\n                    \n    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");\n  }\n  if (param_2[0xcd1] != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");\n  }\n  if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6);\n  }\n  if (((uint)param_2[6] < 0x10000) && ((uint)param_2[7] < 0x10000)) {\n    if (param_3 == 0) {\n                    \n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }\n    if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }\n    iVar12 = OpenBlob(param_1,param_2,4,param_3);\n    if (iVar12 == 0) goto LAB_0027872e;\n    TransformImageColorspace(param_2,0x17,param_3);\n    uVar14 = param_2[6];\n    dVar2 = *(double *)(param_2 + 0x7c);\n    if ((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)) {\n      dVar3 = 0.0;\n      dVar2 = 0.0;\n    }\n    else if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }\n    iVar12 = *param_2;\n    if ((*param_1 == 0xc) || (iVar12 == 1)) {\n      local_94 = uVar14 << 2;\n      if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90 = (undefined1 *)0x40;\n      iVar12 = 1;\n      local_8c = (undefined1 *)0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }\n    if ((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)) {\n      ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);\n      piVar5 = (int *)param_1[3];\n      piVar9 = param_2;\n      while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }\n      goto LAB_00278720;\n    }\n    uVar26 = param_2[7];\n    puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1);\n    __s = (void *)AcquireQuantumMemory(uVar27,1);\n    __s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);\n    if ((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)) {\n      if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }\n      if (__s != (void *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }\n    if (puVar13 != (undefined4 *)0x0) {\n      RelinquishMagickMemory(puVar13);\n    }\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6);\n    piVar5 = (int *)param_1[3];\n    piVar9 = param_2;\n    while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n      piVar5 = (int *)piVar8[0xccf];\n      piVar9 = piVar5;\n      param_2 = piVar8;\n    }\n  }\n  else {\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6);\n    if (param_1[3] != 0) {\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }\n  }\nLAB_00278720:\n  CloseBlob(param_2);\n  iVar12 = 0;\nLAB_0027872e:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar12;\n  }\n                    \n  FUN_002decd0();\n}\n\n" (function_definition "int FUN_00278530(int *param_1,int *param_2,int param_3)\n\n{\n  double *pdVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar7;\n  int *piVar8;\n  int *piVar9;\n  short sVar10;\n  undefined2 uVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  void *__s;\n  undefined1 *__s_00;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  int iVar18;\n  uint uVar19;\n  int iVar20;\n  undefined4 extraout_ECX;\n  undefined1 *puVar21;\n  undefined4 extraout_ECX_00;\n  undefined1 *puVar22;\n  int iVar23;\n  undefined1 uVar24;\n  undefined4 *puVar25;\n  uint uVar26;\n  uint uVar27;\n  int in_GS_OFFSET;\n  bool bVar28;\n  byte bVar29;\n  undefined1 *local_a4;\n  uint local_a0;\n  undefined1 *local_9c;\n  int local_98;\n  size_t local_94;\n  undefined1 *local_90;\n  undefined1 *local_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  uint local_5c;\n  int local_58;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar29 = 0;\n  uStack_14 = 0x278539;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == (int *)0x0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");\n  }\n  if (param_1[0xc7d] != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");\n  }\n  if (param_2 == (int *)0x0) {\n                    \n    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");\n  }\n  if (param_2[0xcd1] != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");\n  }\n  if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6);\n  }\n  if (((uint)param_2[6] < 0x10000) && ((uint)param_2[7] < 0x10000)) {\n    if (param_3 == 0) {\n                    \n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }\n    if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }\n    iVar12 = OpenBlob(param_1,param_2,4,param_3);\n    if (iVar12 == 0) goto LAB_0027872e;\n    TransformImageColorspace(param_2,0x17,param_3);\n    uVar14 = param_2[6];\n    dVar2 = *(double *)(param_2 + 0x7c);\n    if ((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)) {\n      dVar3 = 0.0;\n      dVar2 = 0.0;\n    }\n    else if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }\n    iVar12 = *param_2;\n    if ((*param_1 == 0xc) || (iVar12 == 1)) {\n      local_94 = uVar14 << 2;\n      if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90 = (undefined1 *)0x40;\n      iVar12 = 1;\n      local_8c = (undefined1 *)0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }\n    if ((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)) {\n      ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);\n      piVar5 = (int *)param_1[3];\n      piVar9 = param_2;\n      while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }\n      goto LAB_00278720;\n    }\n    uVar26 = param_2[7];\n    puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1);\n    __s = (void *)AcquireQuantumMemory(uVar27,1);\n    __s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);\n    if ((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)) {\n      if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }\n      if (__s != (void *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }\n    if (puVar13 != (undefined4 *)0x0) {\n      RelinquishMagickMemory(puVar13);\n    }\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6);\n    piVar5 = (int *)param_1[3];\n    piVar9 = param_2;\n    while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n      piVar5 = (int *)piVar8[0xccf];\n      piVar9 = piVar5;\n      param_2 = piVar8;\n    }\n  }\n  else {\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6);\n    if (param_1[3] != 0) {\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }\n  }\nLAB_00278720:\n  CloseBlob(param_2);\n  iVar12 = 0;\nLAB_0027872e:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar12;\n  }\n                    \n  FUN_002decd0();\n}" primitive_type (function_declarator "FUN_00278530(int *param_1,int *param_2,int param_3)" identifier (parameter_list "(int *param_1,int *param_2,int param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  double *pdVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar7;\n  int *piVar8;\n  int *piVar9;\n  short sVar10;\n  undefined2 uVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  void *__s;\n  undefined1 *__s_00;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  int iVar18;\n  uint uVar19;\n  int iVar20;\n  undefined4 extraout_ECX;\n  undefined1 *puVar21;\n  undefined4 extraout_ECX_00;\n  undefined1 *puVar22;\n  int iVar23;\n  undefined1 uVar24;\n  undefined4 *puVar25;\n  uint uVar26;\n  uint uVar27;\n  int in_GS_OFFSET;\n  bool bVar28;\n  byte bVar29;\n  undefined1 *local_a4;\n  uint local_a0;\n  undefined1 *local_9c;\n  int local_98;\n  size_t local_94;\n  undefined1 *local_90;\n  undefined1 *local_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  uint local_5c;\n  int local_58;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar29 = 0;\n  uStack_14 = 0x278539;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == (int *)0x0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");\n  }\n  if (param_1[0xc7d] != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");\n  }\n  if (param_2 == (int *)0x0) {\n                    \n    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");\n  }\n  if (param_2[0xcd1] != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");\n  }\n  if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6);\n  }\n  if (((uint)param_2[6] < 0x10000) && ((uint)param_2[7] < 0x10000)) {\n    if (param_3 == 0) {\n                    \n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }\n    if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }\n    iVar12 = OpenBlob(param_1,param_2,4,param_3);\n    if (iVar12 == 0) goto LAB_0027872e;\n    TransformImageColorspace(param_2,0x17,param_3);\n    uVar14 = param_2[6];\n    dVar2 = *(double *)(param_2 + 0x7c);\n    if ((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)) {\n      dVar3 = 0.0;\n      dVar2 = 0.0;\n    }\n    else if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }\n    iVar12 = *param_2;\n    if ((*param_1 == 0xc) || (iVar12 == 1)) {\n      local_94 = uVar14 << 2;\n      if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90 = (undefined1 *)0x40;\n      iVar12 = 1;\n      local_8c = (undefined1 *)0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }\n    if ((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)) {\n      ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);\n      piVar5 = (int *)param_1[3];\n      piVar9 = param_2;\n      while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }\n      goto LAB_00278720;\n    }\n    uVar26 = param_2[7];\n    puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1);\n    __s = (void *)AcquireQuantumMemory(uVar27,1);\n    __s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);\n    if ((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)) {\n      if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }\n      if (__s != (void *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }\n    if (puVar13 != (undefined4 *)0x0) {\n      RelinquishMagickMemory(puVar13);\n    }\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6);\n    piVar5 = (int *)param_1[3];\n    piVar9 = param_2;\n    while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n      piVar5 = (int *)piVar8[0xccf];\n      piVar9 = piVar5;\n      param_2 = piVar8;\n    }\n  }\n  else {\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6);\n    if (param_1[3] != 0) {\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }\n  }\nLAB_00278720:\n  CloseBlob(param_2);\n  iVar12 = 0;\nLAB_0027872e:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar12;\n  }\n                    \n  FUN_002decd0();\n}" { (declaration "double *pdVar1;" primitive_type (pointer_declarator "*pdVar1" * identifier) ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "short sVar10;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined2 uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "void *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "undefined1 *__s_00;" type_identifier (pointer_declarator "*__s_00" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined4 extraout_ECX_00;" type_identifier identifier ;) (declaration "undefined1 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "undefined1 uVar24;" type_identifier identifier ;) (declaration "undefined4 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar28;" primitive_type identifier ;) (declaration "byte bVar29;" type_identifier identifier ;) (declaration "undefined1 *local_a4;" type_identifier (pointer_declarator "*local_a4" * identifier) ;) (declaration "uint local_a0;" type_identifier identifier ;) (declaration "undefined1 *local_9c;" type_identifier (pointer_declarator "*local_9c" * identifier) ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "size_t local_94;" primitive_type identifier ;) (declaration "undefined1 *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "undefined1 *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "undefined4 local_88;" type_identifier identifier ;) (declaration "undefined4 local_84;" type_identifier identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x278539;" (assignment_expression "uStack_14 = 0x278539" 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 == (int *)0x0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");\n  }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");\n  }" { (expression_statement "__assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");" (call_expression "__assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage")" identifier (argument_list "("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage")" ( (string_literal ""image_info != (const ImageInfo *) NULL"" " string_content ") , (string_literal ""coders/pict.c"" " string_content ") , number_literal , (string_literal ""WritePICTImage"" " string_content ") ))) ;) })) (if_statement "if (param_1[0xc7d] != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");\n  }" if (parenthesized_expression "(param_1[0xc7d] != -0x54535255)" ( (binary_expression "param_1[0xc7d] != -0x54535255" (subscript_expression "param_1[0xc7d]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");\n  }" { (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage")" identifier (argument_list "("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage")" ( (string_literal ""image_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/pict.c"" " string_content ") , number_literal , (string_literal ""WritePICTImage"" " string_content ") ))) ;) })) (if_statement "if (param_2 == (int *)0x0) {\n                    \n    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");\n  }" if (parenthesized_expression "(param_2 == (int *)0x0)" ( (binary_expression "param_2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");\n  }" { (expression_statement "__assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");" (call_expression "__assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage")" identifier (argument_list "("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""coders/pict.c"" " string_content ") , number_literal , (string_literal ""WritePICTImage"" " string_content ") ))) ;) })) (if_statement "if (param_2[0xcd1] != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");\n  }" if (parenthesized_expression "(param_2[0xcd1] != -0x54535255)" ( (binary_expression "param_2[0xcd1] != -0x54535255" (subscript_expression "param_2[0xcd1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");\n  }" { (expression_statement "__assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage")" identifier (argument_list "("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/pict.c"" " string_content ") , number_literal , (string_literal ""WritePICTImage"" " string_content ") ))) ;) })) (if_statement "if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6);\n  }" if (parenthesized_expression "(param_2[0xcca] != 0)" ( (binary_expression "param_2[0xcca] != 0" (subscript_expression "param_2[0xcca]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6);\n  }" { (expression_statement "LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6);" (call_expression "LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6)" identifier (argument_list "(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6)" ( number_literal , (string_literal ""coders/pict.c"" " string_content ") , (string_literal ""WritePICTImage"" " string_content ") , number_literal , (pointer_expression "&DAT_002f75ae" & identifier) , (binary_expression "param_2 + 0xc6" identifier + number_literal) ))) ;) })) (if_statement "if (((uint)param_2[6] < 0x10000) && ((uint)param_2[7] < 0x10000)) {\n    if (param_3 == 0) {\n                    \n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }\n    if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }\n    iVar12 = OpenBlob(param_1,param_2,4,param_3);\n    if (iVar12 == 0) goto LAB_0027872e;\n    TransformImageColorspace(param_2,0x17,param_3);\n    uVar14 = param_2[6];\n    dVar2 = *(double *)(param_2 + 0x7c);\n    if ((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)) {\n      dVar3 = 0.0;\n      dVar2 = 0.0;\n    }\n    else if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }\n    iVar12 = *param_2;\n    if ((*param_1 == 0xc) || (iVar12 == 1)) {\n      local_94 = uVar14 << 2;\n      if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90 = (undefined1 *)0x40;\n      iVar12 = 1;\n      local_8c = (undefined1 *)0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }\n    if ((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)) {\n      ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);\n      piVar5 = (int *)param_1[3];\n      piVar9 = param_2;\n      while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }\n      goto LAB_00278720;\n    }\n    uVar26 = param_2[7];\n    puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1);\n    __s = (void *)AcquireQuantumMemory(uVar27,1);\n    __s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);\n    if ((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)) {\n      if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }\n      if (__s != (void *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }\n    if (puVar13 != (undefined4 *)0x0) {\n      RelinquishMagickMemory(puVar13);\n    }\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6);\n    piVar5 = (int *)param_1[3];\n    piVar9 = param_2;\n    while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n      piVar5 = (int *)piVar8[0xccf];\n      piVar9 = piVar5;\n      param_2 = piVar8;\n    }\n  }\n  else {\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6);\n    if (param_1[3] != 0) {\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }\n  }" if (parenthesized_expression "(((uint)param_2[6] < 0x10000) && ((uint)param_2[7] < 0x10000))" ( (binary_expression "((uint)param_2[6] < 0x10000) && ((uint)param_2[7] < 0x10000)" (parenthesized_expression "((uint)param_2[6] < 0x10000)" ( (binary_expression "(uint)param_2[6] < 0x10000" (cast_expression "(uint)param_2[6]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[6]" identifier [ number_literal ])) < number_literal) )) && (parenthesized_expression "((uint)param_2[7] < 0x10000)" ( (binary_expression "(uint)param_2[7] < 0x10000" (cast_expression "(uint)param_2[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[7]" identifier [ number_literal ])) < number_literal) ))) )) (compound_statement "{\n    if (param_3 == 0) {\n                    \n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }\n    if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }\n    iVar12 = OpenBlob(param_1,param_2,4,param_3);\n    if (iVar12 == 0) goto LAB_0027872e;\n    TransformImageColorspace(param_2,0x17,param_3);\n    uVar14 = param_2[6];\n    dVar2 = *(double *)(param_2 + 0x7c);\n    if ((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)) {\n      dVar3 = 0.0;\n      dVar2 = 0.0;\n    }\n    else if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }\n    iVar12 = *param_2;\n    if ((*param_1 == 0xc) || (iVar12 == 1)) {\n      local_94 = uVar14 << 2;\n      if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90 = (undefined1 *)0x40;\n      iVar12 = 1;\n      local_8c = (undefined1 *)0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }\n    if ((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)) {\n      ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);\n      piVar5 = (int *)param_1[3];\n      piVar9 = param_2;\n      while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }\n      goto LAB_00278720;\n    }\n    uVar26 = param_2[7];\n    puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1);\n    __s = (void *)AcquireQuantumMemory(uVar27,1);\n    __s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);\n    if ((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)) {\n      if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }\n      if (__s != (void *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }\n    if (puVar13 != (undefined4 *)0x0) {\n      RelinquishMagickMemory(puVar13);\n    }\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6);\n    piVar5 = (int *)param_1[3];\n    piVar9 = param_2;\n    while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n      piVar5 = (int *)piVar8[0xccf];\n      piVar9 = piVar5;\n      param_2 = piVar8;\n    }\n  }" { (if_statement "if (param_3 == 0) {\n                    \n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }" { (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage")" identifier (argument_list "("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage")" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""coders/pict.c"" " string_content ") , number_literal , (string_literal ""WritePICTImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }" if (parenthesized_expression "(*(int *)(param_3 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_3 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_3 + 0x1c)" * (cast_expression "(int *)(param_3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x1c)" ( (binary_expression "param_3 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }" { (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage")" identifier (argument_list "("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage")" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/pict.c"" " string_content ") , number_literal , (string_literal ""WritePICTImage"" " string_content ") ))) ;) })) (expression_statement "iVar12 = OpenBlob(param_1,param_2,4,param_3);" (assignment_expression "iVar12 = OpenBlob(param_1,param_2,4,param_3)" identifier = (call_expression "OpenBlob(param_1,param_2,4,param_3)" identifier (argument_list "(param_1,param_2,4,param_3)" ( identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar12 == 0) goto LAB_0027872e;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0027872e;" goto statement_identifier ;)) (expression_statement "TransformImageColorspace(param_2,0x17,param_3);" (call_expression "TransformImageColorspace(param_2,0x17,param_3)" identifier (argument_list "(param_2,0x17,param_3)" ( identifier , number_literal , identifier ))) ;) (expression_statement "uVar14 = param_2[6];" (assignment_expression "uVar14 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "dVar2 = *(double *)(param_2 + 0x7c);" (assignment_expression "dVar2 = *(double *)(param_2 + 0x7c)" identifier = (pointer_expression "*(double *)(param_2 + 0x7c)" * (cast_expression "(double *)(param_2 + 0x7c)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x7c)" ( (binary_expression "param_2 + 0x7c" identifier + number_literal) ))))) ;) (if_statement "if ((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)) {\n      dVar3 = 0.0;\n      dVar2 = 0.0;\n    }\n    else if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }" if (parenthesized_expression "((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0))" ( (binary_expression "(dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)" (parenthesized_expression "(dVar2 <= DAT_002df2d0)" ( (binary_expression "dVar2 <= DAT_002df2d0" identifier <= identifier) )) || (parenthesized_expression "(dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)" ( (comma_expression "dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0" (assignment_expression "dVar3 = *(double *)(param_2 + 0x7e)" identifier = (pointer_expression "*(double *)(param_2 + 0x7e)" * (cast_expression "(double *)(param_2 + 0x7e)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x7e)" ( (binary_expression "param_2 + 0x7e" identifier + number_literal) ))))) , (binary_expression "dVar3 <= DAT_002df2d0" identifier <= identifier)) ))) )) (compound_statement "{\n      dVar3 = 0.0;\n      dVar2 = 0.0;\n    }" { (expression_statement "dVar3 = 0.0;" (assignment_expression "dVar3 = 0.0" identifier = number_literal) ;) (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" identifier = number_literal) ;) }) (else_clause "else if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }" else (if_statement "if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }" if (parenthesized_expression "(param_2[0x77] == 2)" ( (binary_expression "param_2[0x77] == 2" (subscript_expression "param_2[0x77]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }" { (expression_statement "dVar2 = dVar2 * _DAT_002f84b0;" (assignment_expression "dVar2 = dVar2 * _DAT_002f84b0" identifier = (binary_expression "dVar2 * _DAT_002f84b0" identifier * identifier)) ;) (expression_statement "dVar3 = _DAT_002f84b0 * dVar3;" (assignment_expression "dVar3 = _DAT_002f84b0 * dVar3" identifier = (binary_expression "_DAT_002f84b0 * dVar3" identifier * identifier)) ;) })))) (expression_statement "iVar12 = *param_2;" (assignment_expression "iVar12 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if ((*param_1 == 0xc) || (iVar12 == 1)) {\n      local_94 = uVar14 << 2;\n      if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90 = (undefined1 *)0x40;\n      iVar12 = 1;\n      local_8c = (undefined1 *)0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }" if (parenthesized_expression "((*param_1 == 0xc) || (iVar12 == 1))" ( (binary_expression "(*param_1 == 0xc) || (iVar12 == 1)" (parenthesized_expression "(*param_1 == 0xc)" ( (binary_expression "*param_1 == 0xc" (pointer_expression "*param_1" * identifier) == number_literal) )) || (parenthesized_expression "(iVar12 == 1)" ( (binary_expression "iVar12 == 1" identifier == number_literal) ))) )) (compound_statement "{\n      local_94 = uVar14 << 2;\n      if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90 = (undefined1 *)0x40;\n      iVar12 = 1;\n      local_8c = (undefined1 *)0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }" { (expression_statement "local_94 = uVar14 << 2;" (assignment_expression "local_94 = uVar14 << 2" identifier = (binary_expression "uVar14 << 2" identifier << number_literal)) ;) (if_statement "if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }" if (parenthesized_expression "(param_2[0xa5] == 0)" ( (binary_expression "param_2[0xa5] == 0" (subscript_expression "param_2[0xa5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }" { (expression_statement "local_9c._0_2_ = 3;" (assignment_expression "local_9c._0_2_ = 3" (field_expression "local_9c._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_a0 = uVar14 * 3;" (assignment_expression "local_a0 = uVar14 * 3" identifier = (binary_expression "uVar14 * 3" identifier * number_literal)) ;) }) (else_clause "else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }" else (compound_statement "{\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }" { (expression_statement "local_9c._0_2_ = 4;" (assignment_expression "local_9c._0_2_ = 4" (field_expression "local_9c._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_a0 = local_94;" (assignment_expression "local_a0 = local_94" identifier = identifier) ;) }))) (expression_statement "local_90 = (undefined1 *)0x40;" (assignment_expression "local_90 = (undefined1 *)0x40" identifier = (cast_expression "(undefined1 *)0x40" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (expression_statement "local_8c = (undefined1 *)0x20;" (assignment_expression "local_8c = (undefined1 *)0x20" identifier = (cast_expression "(undefined1 *)0x20" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_88 = 0x10;" (assignment_expression "local_88 = 0x10" identifier = number_literal) ;) (expression_statement "local_84 = 4;" (assignment_expression "local_84 = 4" identifier = number_literal) ;) }) (else_clause "else {\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }" else (compound_statement "{\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }" { (expression_statement "local_90 = (undefined1 *)0x0;" (assignment_expression "local_90 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_8c = (undefined1 *)0x8;" (assignment_expression "local_8c = (undefined1 *)0x8" identifier = (cast_expression "(undefined1 *)0x8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "local_9c._0_2_ = 1;" (assignment_expression "local_9c._0_2_ = 1" (field_expression "local_9c._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_a0 = uVar14;" (assignment_expression "local_a0 = uVar14" identifier = identifier) ;) (expression_statement "local_94 = uVar14;" (assignment_expression "local_94 = uVar14" identifier = identifier) ;) }))) (if_statement "if ((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)) {\n      ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);\n      piVar5 = (int *)param_1[3];\n      piVar9 = param_2;\n      while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }\n      goto LAB_00278720;\n    }" if (parenthesized_expression "((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27))" ( (binary_expression "(0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)" (parenthesized_expression "(0x7ffe < local_a0 - 1)" ( (binary_expression "0x7ffe < local_a0 - 1" number_literal < (binary_expression "local_a0 - 1" identifier - number_literal)) )) || (parenthesized_expression "(uVar27 = local_94 + 0x100, 0x7ffe < uVar27)" ( (comma_expression "uVar27 = local_94 + 0x100, 0x7ffe < uVar27" (assignment_expression "uVar27 = local_94 + 0x100" identifier = (binary_expression "local_94 + 0x100" identifier + number_literal)) , (binary_expression "0x7ffe < uVar27" number_literal < identifier)) ))) )) (compound_statement "{\n      ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);\n      piVar5 = (int *)param_1[3];\n      piVar9 = param_2;\n      while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }\n      goto LAB_00278720;\n    }" { (expression_statement "ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);" (call_expression "ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6)" identifier (argument_list "(param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6)" ( identifier , (string_literal ""coders/pict.c"" " string_content ") , (string_literal ""WritePICTImage"" " string_content ") , number_literal , number_literal , (string_literal ""WidthOrHeightExceedsLimit"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_2 + 0xc6" identifier + number_literal) ))) ;) (expression_statement "piVar5 = (int *)param_1[3];" (assignment_expression "piVar5 = (int *)param_1[3]" identifier = (cast_expression "(int *)param_1[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "piVar9 = param_2;" (assignment_expression "piVar9 = param_2" identifier = identifier) ;) (while_statement "while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }" while (parenthesized_expression "(piVar8 = piVar9, piVar5 != (int *)0x0)" ( (comma_expression "piVar8 = piVar9, piVar5 != (int *)0x0" (assignment_expression "piVar8 = piVar9" identifier = identifier) , (binary_expression "piVar5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }" { (expression_statement "piVar5 = (int *)piVar8[0xccf];" (assignment_expression "piVar5 = (int *)piVar8[0xccf]" identifier = (cast_expression "(int *)piVar8[0xccf]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0xccf]" identifier [ number_literal ]))) ;) (expression_statement "piVar9 = piVar5;" (assignment_expression "piVar9 = piVar5" identifier = identifier) ;) (expression_statement "param_2 = piVar8;" (assignment_expression "param_2 = piVar8" identifier = identifier) ;) })) (goto_statement "goto LAB_00278720;" goto statement_identifier ;) })) (expression_statement "uVar26 = param_2[7];" (assignment_expression "uVar26 = param_2[7]" identifier = (subscript_expression "param_2[7]" identifier [ number_literal ])) ;) (expression_statement "puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1);" (assignment_expression "puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1)" identifier = (cast_expression "(undefined4 *)AcquireQuantumMemory(0x200,1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(0x200,1)" identifier (argument_list "(0x200,1)" ( number_literal , number_literal ))))) ;) (expression_statement "__s = (void *)AcquireQuantumMemory(uVar27,1);" (assignment_expression "__s = (void *)AcquireQuantumMemory(uVar27,1)" identifier = (cast_expression "(void *)AcquireQuantumMemory(uVar27,1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(uVar27,1)" identifier (argument_list "(uVar27,1)" ( identifier , number_literal ))))) ;) (expression_statement "__s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);" (assignment_expression "__s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1)" identifier = (cast_expression "(undefined1 *)AcquireQuantumMemory(local_94,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(local_94,1)" identifier (argument_list "(local_94,1)" ( identifier , number_literal ))))) ;) (if_statement "if ((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)) {\n      if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }\n      if (__s != (void *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }" if (parenthesized_expression "((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0))" ( (binary_expression "(puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)" (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(__s == (void *)0x0)" ( (binary_expression "__s == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }\n      if (__s != (void *)0x0) goto LAB_0027924d;\n    }" { (if_statement "if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }" if (parenthesized_expression "(__s_00 != (undefined1 *)0x0)" ( (binary_expression "__s_00 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        RelinquishMagickMemory(__s_00);\n      }" { (expression_statement "RelinquishMagickMemory(__s_00);" (call_expression "RelinquishMagickMemory(__s_00)" identifier (argument_list "(__s_00)" ( identifier ))) ;) })) (if_statement "if (__s != (void *)0x0) goto LAB_0027924d;" if (parenthesized_expression "(__s != (void *)0x0)" ( (binary_expression "__s != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0027924d;" goto statement_identifier ;)) }) (else_clause "else {\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }" else (compound_statement "{\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }" { (if_statement "if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }" if (parenthesized_expression "(__s_00 != (undefined1 *)0x0)" ( (binary_expression "__s_00 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }" { (expression_statement "memset(__s_00,0,local_94);" (call_expression "memset(__s_00,0,local_94)" identifier (argument_list "(__s_00,0,local_94)" ( identifier , number_literal , identifier ))) ;) (expression_statement "memset(__s,0,uVar27);" (call_expression "memset(__s,0,uVar27)" identifier (argument_list "(__s,0,uVar27)" ( identifier , number_literal , identifier ))) ;) (expression_statement "puVar25 = puVar13;" (assignment_expression "puVar25 = puVar13" identifier = identifier) ;) (for_statement "for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }" for ( (assignment_expression "iVar20 = 0x80" identifier = number_literal) ; (binary_expression "iVar20 != 0" identifier != number_literal) ; (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ) (compound_statement "{\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }" { (expression_statement "*puVar25 = 0;" (assignment_expression "*puVar25 = 0" (pointer_expression "*puVar25" * identifier) = number_literal) ;) (expression_statement "puVar25 = puVar25 + (uint)bVar29 * -2 + 1;" (assignment_expression "puVar25 = puVar25 + (uint)bVar29 * -2 + 1" identifier = (binary_expression "puVar25 + (uint)bVar29 * -2 + 1" (binary_expression "puVar25 + (uint)bVar29 * -2" identifier + (binary_expression "(uint)bVar29 * -2" (cast_expression "(uint)bVar29" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "WriteBlob(param_2,0x200,puVar13);" (call_expression "WriteBlob(param_2,0x200,puVar13)" identifier (argument_list "(param_2,0x200,puVar13)" ( identifier , number_literal , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "uVar26 = uVar26 & 0xffff;" (assignment_expression "uVar26 = uVar26 & 0xffff" identifier = (binary_expression "uVar26 & 0xffff" identifier & number_literal)) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" identifier (argument_list "(param_2,uVar26)" ( identifier , identifier ))) ;) (expression_statement "uVar14 = uVar14 & 0xffff;" (assignment_expression "uVar14 = uVar14 & 0xffff" identifier = (binary_expression "uVar14 & 0xffff" identifier & number_literal)) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" identifier (argument_list "(param_2,uVar14)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0x11);" (call_expression "WriteBlobMSBShort(param_2,0x11)" identifier (argument_list "(param_2,0x11)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0x2ff);" (call_expression "WriteBlobMSBShort(param_2,0x2ff)" identifier (argument_list "(param_2,0x2ff)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0xc00);" (call_expression "WriteBlobMSBShort(param_2,0xc00)" identifier (argument_list "(param_2,0xc00)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0xfffe0000);" (call_expression "WriteBlobMSBLong(param_2,0xfffe0000)" identifier (argument_list "(param_2,0xfffe0000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);" (call_expression "WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU)" identifier (argument_list "(param_2,(int)ROUND(dVar2) & 0xffffU)" ( identifier , (binary_expression "(int)ROUND(dVar2) & 0xffffU" (cast_expression "(int)ROUND(dVar2)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier )))) & number_literal) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);" (call_expression "WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU)" identifier (argument_list "(param_2,(int)ROUND(dVar3) & 0xffffU)" ( identifier , (binary_expression "(int)ROUND(dVar3) & 0xffffU" (cast_expression "(int)ROUND(dVar3)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier )))) & number_literal) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" identifier (argument_list "(param_2,uVar26)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" identifier (argument_list "(param_2,uVar14)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "iVar20 = GetImageProfile(param_2,&DAT_002ec69d);" (assignment_expression "iVar20 = GetImageProfile(param_2,&DAT_002ec69d)" identifier = (call_expression "GetImageProfile(param_2,&DAT_002ec69d)" identifier (argument_list "(param_2,&DAT_002ec69d)" ( identifier , (pointer_expression "&DAT_002ec69d" & identifier) )))) ;) (if_statement "if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }" { (expression_statement "WriteBlobMSBShort(param_2,0xa1);" (call_expression "WriteBlobMSBShort(param_2,0xa1)" identifier (argument_list "(param_2,0xa1)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0x1f2);" (call_expression "WriteBlobMSBShort(param_2,0x1f2)" identifier (argument_list "(param_2,0x1f2)" ( identifier , number_literal ))) ;) (expression_statement "sVar10 = GetStringInfoLength(iVar20);" (assignment_expression "sVar10 = GetStringInfoLength(iVar20)" identifier = (call_expression "GetStringInfoLength(iVar20)" identifier (argument_list "(iVar20)" ( identifier )))) ;) (expression_statement "WriteBlobMSBShort(param_2,sVar10 + 4);" (call_expression "WriteBlobMSBShort(param_2,sVar10 + 4)" identifier (argument_list "(param_2,sVar10 + 4)" ( identifier , (binary_expression "sVar10 + 4" identifier + number_literal) ))) ;) (expression_statement "WriteBlobString(param_2,&DAT_002e24fa);" (call_expression "WriteBlobString(param_2,&DAT_002e24fa)" identifier (argument_list "(param_2,&DAT_002e24fa)" ( identifier , (pointer_expression "&DAT_002e24fa" & identifier) ))) ;) (expression_statement "uVar15 = GetStringInfoDatum(iVar20);" (assignment_expression "uVar15 = GetStringInfoDatum(iVar20)" identifier = (call_expression "GetStringInfoDatum(iVar20)" identifier (argument_list "(iVar20)" ( identifier )))) ;) (expression_statement "uVar16 = GetStringInfoLength(iVar20);" (assignment_expression "uVar16 = GetStringInfoLength(iVar20)" identifier = (call_expression "GetStringInfoLength(iVar20)" identifier (argument_list "(iVar20)" ( identifier )))) ;) (expression_statement "WriteBlob(param_2,uVar16,uVar15);" (call_expression "WriteBlob(param_2,uVar16,uVar15)" identifier (argument_list "(param_2,uVar16,uVar15)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "iVar20 = GetImageProfile(param_2,&DAT_002e832a);" (assignment_expression "iVar20 = GetImageProfile(param_2,&DAT_002e832a)" identifier = (call_expression "GetImageProfile(param_2,&DAT_002e832a)" identifier (argument_list "(param_2,&DAT_002e832a)" ( identifier , (pointer_expression "&DAT_002e832a" & identifier) )))) ;) (if_statement "if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }" { (expression_statement "WriteBlobMSBShort(param_2,0xa1);" (call_expression "WriteBlobMSBShort(param_2,0xa1)" identifier (argument_list "(param_2,0xa1)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0xe0);" (call_expression "WriteBlobMSBShort(param_2,0xe0)" identifier (argument_list "(param_2,0xe0)" ( identifier , number_literal ))) ;) (expression_statement "sVar10 = GetStringInfoLength(iVar20);" (assignment_expression "sVar10 = GetStringInfoLength(iVar20)" identifier = (call_expression "GetStringInfoLength(iVar20)" identifier (argument_list "(iVar20)" ( identifier )))) ;) (expression_statement "WriteBlobMSBShort(param_2,sVar10 + 4);" (call_expression "WriteBlobMSBShort(param_2,sVar10 + 4)" identifier (argument_list "(param_2,sVar10 + 4)" ( identifier , (binary_expression "sVar10 + 4" identifier + number_literal) ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "uVar15 = GetStringInfoDatum(iVar20);" (assignment_expression "uVar15 = GetStringInfoDatum(iVar20)" identifier = (call_expression "GetStringInfoDatum(iVar20)" identifier (argument_list "(iVar20)" ( identifier )))) ;) (expression_statement "uVar16 = GetStringInfoLength(iVar20);" (assignment_expression "uVar16 = GetStringInfoLength(iVar20)" identifier = (call_expression "GetStringInfoLength(iVar20)" identifier (argument_list "(iVar20)" ( identifier )))) ;) (expression_statement "WriteBlob(param_2,uVar16,uVar15);" (call_expression "WriteBlob(param_2,uVar16,uVar15)" identifier (argument_list "(param_2,uVar16,uVar15)" ( identifier , identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0xa1);" (call_expression "WriteBlobMSBShort(param_2,0xa1)" identifier (argument_list "(param_2,0xa1)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0xe0);" (call_expression "WriteBlobMSBShort(param_2,0xe0)" identifier (argument_list "(param_2,0xe0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,4);" (call_expression "WriteBlobMSBShort(param_2,4)" identifier (argument_list "(param_2,4)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,2);" (call_expression "WriteBlobMSBLong(param_2,2)" identifier (argument_list "(param_2,2)" ( identifier , number_literal ))) ;) })) (expression_statement "WriteBlobMSBShort(param_2,1);" (call_expression "WriteBlobMSBShort(param_2,1)" identifier (argument_list "(param_2,1)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,10);" (call_expression "WriteBlobMSBShort(param_2,10)" identifier (argument_list "(param_2,10)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" identifier (argument_list "(param_2,uVar26)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" identifier (argument_list "(param_2,uVar14)" ( identifier , identifier ))) ;) (if_statement "if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }" if (parenthesized_expression "(*param_1 == 0xc)" ( (binary_expression "*param_1 == 0xc" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }" { (expression_statement "iVar20 = CloneImage(param_2,0,0,1,param_3);" (assignment_expression "iVar20 = CloneImage(param_2,0,0,1,param_3)" identifier = (call_expression "CloneImage(param_2,0,0,1,param_3)" identifier (argument_list "(param_2,0,0,1,param_3)" ( identifier , number_literal , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n            CloseBlob(param_2);\n          }" { (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) }) (else_clause "else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }" else (compound_statement "{\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }" { (expression_statement "iVar17 = CloneImageInfo(param_1);" (assignment_expression "iVar17 = CloneImageInfo(param_1)" identifier = (call_expression "CloneImageInfo(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);" (call_expression "CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000)" identifier (argument_list "(iVar17 + 0x1f0,&DAT_002e2520,0x1000)" ( (binary_expression "iVar17 + 0x1f0" identifier + number_literal) , (pointer_expression "&DAT_002e2520" & identifier) , number_literal ))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);" (assignment_expression "iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3)" identifier = (call_expression "ImageToBlob(iVar17,iVar20,&local_24,param_3)" identifier (argument_list "(iVar17,iVar20,&local_24,param_3)" ( identifier , identifier , (pointer_expression "&local_24" & identifier) , identifier )))) ;) (expression_statement "DestroyImageInfo(iVar17);" (call_expression "DestroyImageInfo(iVar17)" identifier (argument_list "(iVar17)" ( identifier ))) ;) (if_statement "if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }" { (expression_statement "DestroyImage(iVar20);" (call_expression "DestroyImage(iVar20)" identifier (argument_list "(iVar20)" ( identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0x8200);" (call_expression "WriteBlobMSBShort(param_2,0x8200)" identifier (argument_list "(param_2,0x8200)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,local_24 + 0x9a);" (call_expression "WriteBlobMSBLong(param_2,local_24 + 0x9a)" identifier (argument_list "(param_2,local_24 + 0x9a)" ( identifier , (binary_expression "local_24 + 0x9a" identifier + number_literal) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0x10000);" (call_expression "WriteBlobMSBLong(param_2,0x10000)" identifier (argument_list "(param_2,0x10000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0x10000);" (call_expression "WriteBlobMSBLong(param_2,0x10000)" identifier (argument_list "(param_2,0x10000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0x40000000);" (call_expression "WriteBlobMSBLong(param_2,0x40000000)" identifier (argument_list "(param_2,0x40000000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0x400000);" (call_expression "WriteBlobMSBLong(param_2,0x400000)" identifier (argument_list "(param_2,0x400000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(short)param_2[7]);" (call_expression "WriteBlobMSBShort(param_2,(short)param_2[7])" identifier (argument_list "(param_2,(short)param_2[7])" ( identifier , (cast_expression "(short)param_2[7]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "param_2[7]" identifier [ number_literal ])) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(short)param_2[6]);" (call_expression "WriteBlobMSBShort(param_2,(short)param_2[6])" identifier (argument_list "(param_2,(short)param_2[6])" ( identifier , (cast_expression "(short)param_2[6]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "param_2[6]" identifier [ number_literal ])) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0x300);" (call_expression "WriteBlobMSBShort(param_2,0x300)" identifier (argument_list "(param_2,0x300)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0x566a70);" (call_expression "WriteBlobMSBLong(param_2,0x566a70)" identifier (argument_list "(param_2,0x566a70)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0x65670000);" (call_expression "WriteBlobMSBLong(param_2,0x65670000)" identifier (argument_list "(param_2,0x65670000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,1);" (call_expression "WriteBlobMSBLong(param_2,1)" identifier (argument_list "(param_2,1)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0x16170);" (call_expression "WriteBlobMSBLong(param_2,0x16170)" identifier (argument_list "(param_2,0x16170)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0x706c0000);" (call_expression "WriteBlobMSBLong(param_2,0x706c0000)" identifier (argument_list "(param_2,0x706c0000)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0x300);" (call_expression "WriteBlobMSBShort(param_2,0x300)" identifier (argument_list "(param_2,0x300)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(short)param_2[6]);" (call_expression "WriteBlobMSBShort(param_2,(short)param_2[6])" identifier (argument_list "(param_2,(short)param_2[6])" ( identifier , (cast_expression "(short)param_2[6]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "param_2[6]" identifier [ number_literal ])) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(short)param_2[7]);" (call_expression "WriteBlobMSBShort(param_2,(short)param_2[7])" identifier (argument_list "(param_2,(short)param_2[7])" ( identifier , (cast_expression "(short)param_2[7]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "param_2[7]" identifier [ number_literal ])) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);" (call_expression "WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU)" identifier (argument_list "(param_2,(int)ROUND(dVar2) & 0xffffU)" ( identifier , (binary_expression "(int)ROUND(dVar2) & 0xffffU" (cast_expression "(int)ROUND(dVar2)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier )))) & number_literal) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);" (call_expression "WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU)" identifier (argument_list "(param_2,(int)ROUND(dVar3) & 0xffffU)" ( identifier , (binary_expression "(int)ROUND(dVar3) & 0xffffU" (cast_expression "(int)ROUND(dVar3)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier )))) & number_literal) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,local_24);" (call_expression "WriteBlobMSBLong(param_2,local_24)" identifier (argument_list "(param_2,local_24)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,1);" (call_expression "WriteBlobMSBShort(param_2,1)" identifier (argument_list "(param_2,1)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0xb466f74);" (call_expression "WriteBlobMSBLong(param_2,0xb466f74)" identifier (argument_list "(param_2,0xb466f74)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0x6f202d20);" (call_expression "WriteBlobMSBLong(param_2,0x6f202d20)" identifier (argument_list "(param_2,0x6f202d20)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0x4a504547);" (call_expression "WriteBlobMSBLong(param_2,0x4a504547)" identifier (argument_list "(param_2,0x4a504547)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,&DAT_0018ffff);" (call_expression "WriteBlobMSBLong(param_2,&DAT_0018ffff)" identifier (argument_list "(param_2,&DAT_0018ffff)" ( identifier , (pointer_expression "&DAT_0018ffff" & identifier) ))) ;) (expression_statement "WriteBlob(param_2,local_24,iVar18);" (call_expression "WriteBlob(param_2,local_24,iVar18)" identifier (argument_list "(param_2,local_24,iVar18)" ( identifier , identifier , identifier ))) ;) (if_statement "if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }" if (parenthesized_expression "((local_24 & 1) != 0)" ( (binary_expression "(local_24 & 1) != 0" (parenthesized_expression "(local_24 & 1)" ( (binary_expression "local_24 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }" { (expression_statement "WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);" (call_expression "WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00)" identifier (argument_list "(param_2,0,extraout_ECX_00,extraout_ECX_00)" ( identifier , number_literal , identifier , identifier ))) ;) })) (expression_statement "RelinquishMagickMemory(iVar18);" (call_expression "RelinquishMagickMemory(iVar18)" identifier (argument_list "(iVar18)" ( identifier ))) ;) (goto_statement "goto LAB_00278cac;" goto statement_identifier ;) })) }))) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0027872e;" goto statement_identifier ;) })) (labeled_statement "LAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }" statement_identifier : (if_statement "if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }" if (parenthesized_expression "(iVar12 == 2)" ( (binary_expression "iVar12 == 2" identifier == number_literal) )) (compound_statement "{\n          WriteBlobMSBShort(param_2,0x98);\n        }" { (expression_statement "WriteBlobMSBShort(param_2,0x98);" (call_expression "WriteBlobMSBShort(param_2,0x98)" identifier (argument_list "(param_2,0x98)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }" else (compound_statement "{\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }" { (expression_statement "WriteBlobMSBShort(param_2,0x9a);" (call_expression "WriteBlobMSBShort(param_2,0x9a)" identifier (argument_list "(param_2,0x9a)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0xff);" (call_expression "WriteBlobMSBLong(param_2,0xff)" identifier (argument_list "(param_2,0xff)" ( identifier , number_literal ))) ;) })))) (expression_statement "WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);" (call_expression "WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000)" identifier (argument_list "(param_2,(ushort)local_94 | 0x8000)" ( identifier , (binary_expression "(ushort)local_94 | 0x8000" (cast_expression "(ushort)local_94" ( (type_descriptor "ushort" type_identifier) ) identifier) | number_literal) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" identifier (argument_list "(param_2,uVar26)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" identifier (argument_list "(param_2,uVar14)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,local_84);" (call_expression "WriteBlobMSBShort(param_2,local_84)" identifier (argument_list "(param_2,local_84)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "dVar4 = (double)DAT_002df2b8;" (assignment_expression "dVar4 = (double)DAT_002df2b8" identifier = (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);" (call_expression "WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff)" identifier (argument_list "(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff)" ( identifier , (binary_expression "(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff" (cast_expression "(int)ROUND((float)dVar2 + DAT_002df2b8)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND((float)dVar2 + DAT_002df2b8)" identifier (argument_list "((float)dVar2 + DAT_002df2b8)" ( (binary_expression "(float)dVar2 + DAT_002df2b8" (cast_expression "(float)dVar2" ( (type_descriptor "float" primitive_type) ) identifier) + identifier) )))) & number_literal) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);" (call_expression "WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff)" identifier (argument_list "(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff)" ( identifier , (binary_expression "(int)ROUND(dVar3 + dVar4) & 0xffff" (cast_expression "(int)ROUND(dVar3 + dVar4)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3 + dVar4)" identifier (argument_list "(dVar3 + dVar4)" ( (binary_expression "dVar3 + dVar4" identifier + identifier) )))) & number_literal) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,local_88);" (call_expression "WriteBlobMSBShort(param_2,local_88)" identifier (argument_list "(param_2,local_88)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,local_8c);" (call_expression "WriteBlobMSBShort(param_2,local_8c)" identifier (argument_list "(param_2,local_8c)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,local_9c._0_2_);" (call_expression "WriteBlobMSBShort(param_2,local_9c._0_2_)" identifier (argument_list "(param_2,local_9c._0_2_)" ( identifier , (field_expression "local_9c._0_2_" identifier . field_identifier) ))) ;) (expression_statement "WriteBlobMSBShort(param_2,8);" (call_expression "WriteBlobMSBShort(param_2,8)" identifier (argument_list "(param_2,8)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (if_statement "if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }" if (parenthesized_expression "(iVar12 == 2)" ( (binary_expression "iVar12 == 2" identifier == number_literal) )) (compound_statement "{\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }" { (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(short)param_2[9] + -1);" (call_expression "WriteBlobMSBShort(param_2,(short)param_2[9] + -1)" identifier (argument_list "(param_2,(short)param_2[9] + -1)" ( identifier , (binary_expression "(short)param_2[9] + -1" (cast_expression "(short)param_2[9]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "param_2[9]" identifier [ number_literal ])) + number_literal) ))) ;) (if_statement "if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }" if (parenthesized_expression "(0 < param_2[9])" ( (binary_expression "0 < param_2[9]" number_literal < (subscript_expression "param_2[9]" identifier [ number_literal ])) )) (compound_statement "{\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar27 = 0;" (assignment_expression "uVar27 = 0" identifier = number_literal) ;) (do_statement "do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);" do (compound_statement "{\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            }" { (expression_statement "WriteBlobMSBShort(param_2,uVar27 & 0xffff);" (call_expression "WriteBlobMSBShort(param_2,uVar27 & 0xffff)" identifier (argument_list "(param_2,uVar27 & 0xffff)" ( identifier , (binary_expression "uVar27 & 0xffff" identifier & number_literal) ))) ;) (expression_statement "dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);" (assignment_expression "dVar2 = *(double *)(param_2[10] + 0x20 + iVar12)" identifier = (pointer_expression "*(double *)(param_2[10] + 0x20 + iVar12)" * (cast_expression "(double *)(param_2[10] + 0x20 + iVar12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[10] + 0x20 + iVar12)" ( (binary_expression "param_2[10] + 0x20 + iVar12" (binary_expression "param_2[10] + 0x20" (subscript_expression "param_2[10]" identifier [ number_literal ]) + number_literal) + identifier) ))))) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (if_statement "if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }" if (parenthesized_expression "((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8))" ( (binary_expression "(0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)" (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) && (parenthesized_expression "(uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)" ( (comma_expression "uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8" (assignment_expression "uVar19 = 0xffff" identifier = number_literal) , (binary_expression "dVar2 < (double)DAT_002df8a8" identifier < (cast_expression "(double)DAT_002df8a8" ( (type_descriptor "double" primitive_type) ) identifier))) ))) )) (compound_statement "{\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }" { (expression_statement "uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;" (assignment_expression "uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff" identifier = (binary_expression "(int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff" (cast_expression "(int)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" identifier (argument_list "(dVar2 + (double)DAT_002df2b8)" ( (binary_expression "dVar2 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))) & number_literal)) ;) })) (expression_statement "WriteBlobMSBShort(param_2,uVar19);" (call_expression "WriteBlobMSBShort(param_2,uVar19)" identifier (argument_list "(param_2,uVar19)" ( identifier , identifier ))) ;) (expression_statement "dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);" (assignment_expression "dVar2 = *(double *)(param_2[10] + 0x28 + iVar12)" identifier = (pointer_expression "*(double *)(param_2[10] + 0x28 + iVar12)" * (cast_expression "(double *)(param_2[10] + 0x28 + iVar12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[10] + 0x28 + iVar12)" ( (binary_expression "param_2[10] + 0x28 + iVar12" (binary_expression "param_2[10] + 0x28" (subscript_expression "param_2[10]" identifier [ number_literal ]) + number_literal) + identifier) ))))) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (if_statement "if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }" if (parenthesized_expression "((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8))" ( (binary_expression "(0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)" (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) && (parenthesized_expression "(uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)" ( (comma_expression "uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8" (assignment_expression "uVar19 = 0xffff" identifier = number_literal) , (binary_expression "dVar2 < (double)DAT_002df8a8" identifier < (cast_expression "(double)DAT_002df8a8" ( (type_descriptor "double" primitive_type) ) identifier))) ))) )) (compound_statement "{\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }" { (expression_statement "uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;" (assignment_expression "uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff" identifier = (binary_expression "(int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff" (cast_expression "(int)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" identifier (argument_list "(dVar2 + (double)DAT_002df2b8)" ( (binary_expression "dVar2 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))) & number_literal)) ;) })) (expression_statement "WriteBlobMSBShort(param_2,uVar19);" (call_expression "WriteBlobMSBShort(param_2,uVar19)" identifier (argument_list "(param_2,uVar19)" ( identifier , identifier ))) ;) (expression_statement "dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);" (assignment_expression "dVar2 = *(double *)(param_2[10] + 0x30 + iVar12)" identifier = (pointer_expression "*(double *)(param_2[10] + 0x30 + iVar12)" * (cast_expression "(double *)(param_2[10] + 0x30 + iVar12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[10] + 0x30 + iVar12)" ( (binary_expression "param_2[10] + 0x30 + iVar12" (binary_expression "param_2[10] + 0x30" (subscript_expression "param_2[10]" identifier [ number_literal ]) + number_literal) + identifier) ))))) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (if_statement "if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }" if (parenthesized_expression "((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8))" ( (binary_expression "(0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)" (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) && (parenthesized_expression "(uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)" ( (comma_expression "uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8" (assignment_expression "uVar19 = 0xffff" identifier = number_literal) , (binary_expression "dVar2 < (double)DAT_002df8a8" identifier < (cast_expression "(double)DAT_002df8a8" ( (type_descriptor "double" primitive_type) ) identifier))) ))) )) (compound_statement "{\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }" { (expression_statement "uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;" (assignment_expression "uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff" identifier = (binary_expression "(int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff" (cast_expression "(int)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" identifier (argument_list "(dVar2 + (double)DAT_002df2b8)" ( (binary_expression "dVar2 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))) & number_literal)) ;) })) (expression_statement "uVar27 = uVar27 + 1;" (assignment_expression "uVar27 = uVar27 + 1" identifier = (binary_expression "uVar27 + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = iVar12 + 0x50;" (assignment_expression "iVar12 = iVar12 + 0x50" identifier = (binary_expression "iVar12 + 0x50" identifier + number_literal)) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar19);" (call_expression "WriteBlobMSBShort(param_2,uVar19)" identifier (argument_list "(param_2,uVar19)" ( identifier , identifier ))) ;) }) while (parenthesized_expression "((int)uVar27 < param_2[9])" ( (binary_expression "(int)uVar27 < param_2[9]" (cast_expression "(int)uVar27" ( (type_descriptor "int" primitive_type) ) identifier) < (subscript_expression "param_2[9]" identifier [ number_literal ])) )) ;) })) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" identifier (argument_list "(param_2,uVar26)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" identifier (argument_list "(param_2,uVar14)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" identifier (argument_list "(param_2,uVar26)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" identifier (argument_list "(param_2,uVar14)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,local_90);" (call_expression "WriteBlobMSBShort(param_2,local_90)" identifier (argument_list "(param_2,local_90)" ( identifier , identifier ))) ;) (expression_statement "local_9c = (undefined1 *)0x0;" (assignment_expression "local_9c = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (if_statement "if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }" if (parenthesized_expression "(0 < param_2[7])" ( (binary_expression "0 < param_2[7]" number_literal < (subscript_expression "param_2[7]" identifier [ number_literal ])) )) (compound_statement "{\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }" { (do_statement "do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);" do (compound_statement "{\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            }" { (expression_statement "iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);" (assignment_expression "iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3)" identifier = (call_expression "GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3)" identifier (argument_list "(param_2,0,local_a0,param_2[6],1,param_3)" ( identifier , number_literal , identifier , (subscript_expression "param_2[6]" identifier [ number_literal ]) , number_literal , identifier )))) ;) (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar20 = param_2[6];" (assignment_expression "iVar20 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (if_statement "if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }" if (parenthesized_expression "(0 < iVar20)" ( (binary_expression "0 < iVar20" number_literal < identifier) )) (compound_statement "{\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }" { (expression_statement "iVar17 = param_2[0xa6];" (assignment_expression "iVar17 = param_2[0xa6]" identifier = (subscript_expression "param_2[0xa6]" identifier [ number_literal ])) ;) (expression_statement "iVar18 = param_2[0xaa];" (assignment_expression "iVar18 = param_2[0xaa]" identifier = (subscript_expression "param_2[0xaa]" identifier [ number_literal ])) ;) (expression_statement "puVar21 = __s_00;" (assignment_expression "puVar21 = __s_00" identifier = identifier) ;) (do_statement "do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);" do (compound_statement "{\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                }" { (while_statement "while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }" while (parenthesized_expression "(*(int *)(iVar18 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar18 + 0x40) != 0" (pointer_expression "*(int *)(iVar18 + 0x40)" * (cast_expression "(int *)(iVar18 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x40)" ( (binary_expression "iVar18 + 0x40" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }" { (expression_statement "puVar22 = puVar21 + 1;" (assignment_expression "puVar22 = puVar21 + 1" identifier = (binary_expression "puVar21 + 1" identifier + number_literal)) ;) (expression_statement "pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);" (assignment_expression "pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8)" identifier = (cast_expression "(double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + *(int *)(iVar18 + 0x44) * 8)" ( (binary_expression "iVar12 + *(int *)(iVar18 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar18 + 0x44) * 8" (pointer_expression "*(int *)(iVar18 + 0x44)" * (cast_expression "(int *)(iVar18 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x44)" ( (binary_expression "iVar18 + 0x44" identifier + number_literal) )))) * number_literal)) )))) ;) (expression_statement "iVar12 = iVar12 + iVar17 * 8;" (assignment_expression "iVar12 = iVar12 + iVar17 * 8" identifier = (binary_expression "iVar12 + iVar17 * 8" identifier + (binary_expression "iVar17 * 8" identifier * number_literal))) ;) (expression_statement "*puVar21 = (char)(short)ROUND(*pdVar1);" (assignment_expression "*puVar21 = (char)(short)ROUND(*pdVar1)" (pointer_expression "*puVar21" * identifier) = (cast_expression "(char)(short)ROUND(*pdVar1)" ( (type_descriptor "char" primitive_type) ) (cast_expression "(short)ROUND(*pdVar1)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(*pdVar1)" identifier (argument_list "(*pdVar1)" ( (pointer_expression "*pdVar1" * identifier) )))))) ;) (expression_statement "puVar21 = puVar22;" (assignment_expression "puVar21 = puVar22" identifier = identifier) ;) (if_statement "if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;" if (parenthesized_expression "(puVar22 == __s_00 + iVar20)" ( (binary_expression "puVar22 == __s_00 + iVar20" identifier == (binary_expression "__s_00 + iVar20" identifier + identifier)) )) (goto_statement "goto LAB_00279a01;" goto statement_identifier ;)) })) (expression_statement "*puVar21 = 0;" (assignment_expression "*puVar21 = 0" (pointer_expression "*puVar21" * identifier) = number_literal) ;) (expression_statement "puVar21 = puVar21 + 1;" (assignment_expression "puVar21 = puVar21 + 1" identifier = (binary_expression "puVar21 + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = iVar12 + iVar17 * 8;" (assignment_expression "iVar12 = iVar12 + iVar17 * 8" identifier = (binary_expression "iVar12 + iVar17 * 8" identifier + (binary_expression "iVar17 * 8" identifier * number_literal))) ;) }) while (parenthesized_expression "(puVar21 != __s_00 + iVar20)" ( (binary_expression "puVar21 != __s_00 + iVar20" identifier != (binary_expression "__s_00 + iVar20" identifier + identifier)) )) ;) })) (labeled_statement "LAB_00279a01:\n              iVar12 = FUN_00277f10(__s);" statement_identifier : (expression_statement "iVar12 = FUN_00277f10(__s);" (assignment_expression "iVar12 = FUN_00277f10(__s)" identifier = (call_expression "FUN_00277f10(__s)" identifier (argument_list "(__s)" ( identifier )))) ;)) (expression_statement "uVar14 = uVar14 + iVar12;" (assignment_expression "uVar14 = uVar14 + iVar12" identifier = (binary_expression "uVar14 + iVar12" identifier + identifier)) ;) (if_statement "if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;" if (parenthesized_expression "((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0))" ( (binary_expression "(param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)" (parenthesized_expression "(param_2[0xccf] == 0)" ( (binary_expression "param_2[0xccf] == 0" (subscript_expression "param_2[0xccf]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)" ( (comma_expression "iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0" (assignment_expression "iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0)" identifier = (call_expression "SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0)" identifier (argument_list "(param_2,"Save/Image",local_9c,local_98,param_2[7],0)" ( identifier , (string_literal ""Save/Image"" " string_content ") , identifier , identifier , (subscript_expression "param_2[7]" identifier [ number_literal ]) , number_literal )))) , (binary_expression "iVar12 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "local_a0 = local_a0 + 1;" (assignment_expression "local_a0 = local_a0 + 1" identifier = (binary_expression "local_a0 + 1" identifier + number_literal)) ;) (expression_statement "bVar28 = 0xfffffffe < local_9c;" (assignment_expression "bVar28 = 0xfffffffe < local_9c" identifier = (binary_expression "0xfffffffe < local_9c" number_literal < identifier)) ;) (expression_statement "local_9c = (undefined1 *)((int)local_9c + 1);" (assignment_expression "local_9c = (undefined1 *)((int)local_9c + 1)" identifier = (cast_expression "(undefined1 *)((int)local_9c + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_9c + 1)" ( (binary_expression "(int)local_9c + 1" (cast_expression "(int)local_9c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_98 = local_98 + (uint)bVar28;" (assignment_expression "local_98 = local_98 + (uint)bVar28" identifier = (binary_expression "local_98 + (uint)bVar28" identifier + (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "((int)local_a0 < param_2[7])" ( (binary_expression "(int)local_a0 < param_2[7]" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) < (subscript_expression "param_2[7]" identifier [ number_literal ])) )) ;) (goto_statement "goto LAB_002792ae;" goto statement_identifier ;) })) }) (else_clause "else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }" else (compound_statement "{\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }" { (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" identifier (argument_list "(param_2,uVar26)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" identifier (argument_list "(param_2,uVar14)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" identifier (argument_list "(param_2,uVar26)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" identifier (argument_list "(param_2,uVar14)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,local_90);" (call_expression "WriteBlobMSBShort(param_2,local_90)" identifier (argument_list "(param_2,local_90)" ( identifier , identifier ))) ;) (if_statement "if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }" if (parenthesized_expression "(*param_1 == 0xc)" ( (binary_expression "*param_1 == 0xc" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar15 = extraout_ECX;" (assignment_expression "uVar15 = extraout_ECX" identifier = identifier) ;) (expression_statement "memset(__s_00,0,local_94);" (call_expression "memset(__s_00,0,local_94)" identifier (argument_list "(__s_00,0,local_94)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }" if (parenthesized_expression "(0 < param_2[7])" ( (binary_expression "0 < param_2[7]" number_literal < (subscript_expression "param_2[7]" identifier [ number_literal ])) )) (compound_statement "{\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);" do (compound_statement "{\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              }" { (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);" (assignment_expression "iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15)" identifier = (call_expression "FUN_00277f10(__s,uVar16,local_94,uVar15)" identifier (argument_list "(__s,uVar16,local_94,uVar15)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar14 = uVar14 + iVar20;" (assignment_expression "uVar14 = uVar14 + iVar20" identifier = (binary_expression "uVar14 + iVar20" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar12 < param_2[7])" ( (binary_expression "iVar12 < param_2[7]" identifier < (subscript_expression "param_2[7]" identifier [ number_literal ])) )) ;) (goto_statement "goto LAB_002792ae;" goto statement_identifier ;) })) }) (else_clause "else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }" else (compound_statement "{\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }" { (expression_statement "iVar12 = param_2[6];" (assignment_expression "iVar12 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "local_a4 = __s_00 + iVar12 * 3;" (assignment_expression "local_a4 = __s_00 + iVar12 * 3" identifier = (binary_expression "__s_00 + iVar12 * 3" identifier + (binary_expression "iVar12 * 3" identifier * number_literal))) ;) (if_statement "if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }" if (parenthesized_expression "(0 < param_2[7])" ( (binary_expression "0 < param_2[7]" number_literal < (subscript_expression "param_2[7]" identifier [ number_literal ])) )) (compound_statement "{\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (while_statement "while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }" while (parenthesized_expression "(iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0)" ( (comma_expression "iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0" (assignment_expression "iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3)" identifier = (call_expression "GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3)" identifier (argument_list "(param_2,0,iVar20,iVar12,1,param_3)" ( identifier , number_literal , identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar12 != 0" identifier != number_literal)) )) (compound_statement "{\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }" { (expression_statement "iVar17 = param_2[6];" (assignment_expression "iVar17 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "puVar21 = __s_00 + iVar17;" (assignment_expression "puVar21 = __s_00 + iVar17" identifier = (binary_expression "__s_00 + iVar17" identifier + identifier)) ;) (expression_statement "puVar22 = puVar21 + iVar17;" (assignment_expression "puVar22 = puVar21 + iVar17" identifier = (binary_expression "puVar21 + iVar17" identifier + identifier)) ;) (expression_statement "iVar18 = param_2[0xa5];" (assignment_expression "iVar18 = param_2[0xa5]" identifier = (subscript_expression "param_2[0xa5]" identifier [ number_literal ])) ;) (expression_statement "local_9c = puVar21;" (assignment_expression "local_9c = puVar21" identifier = identifier) ;) (expression_statement "local_90 = puVar22;" (assignment_expression "local_90 = puVar22" identifier = identifier) ;) (expression_statement "local_8c = __s_00;" (assignment_expression "local_8c = __s_00" identifier = identifier) ;) (if_statement "if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }" { (expression_statement "local_90 = puVar22 + iVar17;" (assignment_expression "local_90 = puVar22 + iVar17" identifier = (binary_expression "puVar22 + iVar17" identifier + identifier)) ;) (expression_statement "local_a4 = __s_00;" (assignment_expression "local_a4 = __s_00" identifier = identifier) ;) (expression_statement "local_9c = puVar22;" (assignment_expression "local_9c = puVar22" identifier = identifier) ;) (expression_statement "local_8c = puVar21;" (assignment_expression "local_8c = puVar21" identifier = identifier) ;) })) (if_statement "if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }" if (parenthesized_expression "(0 < iVar17)" ( (binary_expression "0 < iVar17" number_literal < identifier) )) (compound_statement "{\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }" { (expression_statement "iVar6 = param_2[0xa6];" (assignment_expression "iVar6 = param_2[0xa6]" identifier = (subscript_expression "param_2[0xa6]" identifier [ number_literal ])) ;) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = param_2[0xaa];" (assignment_expression "iVar7 = param_2[0xaa]" identifier = (subscript_expression "param_2[0xaa]" identifier [ number_literal ])) ;) (expression_statement "puVar21 = local_a4;" (assignment_expression "puVar21 = local_a4" identifier = identifier) ;) (do_statement "do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);" do (compound_statement "{\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  }" { (expression_statement "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);" (assignment_expression "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8)" identifier = (pointer_expression "*(double *)(iVar12 + *(int *)(iVar7 + 8) * 8)" * (cast_expression "(double *)(iVar12 + *(int *)(iVar7 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + *(int *)(iVar7 + 8) * 8)" ( (binary_expression "iVar12 + *(int *)(iVar7 + 8) * 8" identifier + (binary_expression "*(int *)(iVar7 + 8) * 8" (pointer_expression "*(int *)(iVar7 + 8)" * (cast_expression "(int *)(iVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }" { (expression_statement "dVar2 = dVar2 / (double)DAT_002e814c;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002e814c" identifier = (binary_expression "dVar2 / (double)DAT_002e814c" identifier / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" if (parenthesized_expression "((double)DAT_002e8150 <= dVar2)" ( (binary_expression "(double)DAT_002e8150 <= dVar2" (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                        uVar24 = 0xff;\n                      }" { (expression_statement "uVar24 = 0xff;" (assignment_expression "uVar24 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" else (compound_statement "{\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" { (expression_statement "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" identifier (argument_list "(dVar2 + (double)DAT_002df2b8)" ( (binary_expression "dVar2 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) }))) })) (expression_statement "local_8c[iVar23] = uVar24;" (assignment_expression "local_8c[iVar23] = uVar24" (subscript_expression "local_8c[iVar23]" identifier [ identifier ]) = identifier) ;) (expression_statement "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);" (assignment_expression "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8)" identifier = (pointer_expression "*(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8)" * (cast_expression "(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + *(int *)(iVar7 + 0x14) * 8)" ( (binary_expression "iVar12 + *(int *)(iVar7 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar7 + 0x14) * 8" (pointer_expression "*(int *)(iVar7 + 0x14)" * (cast_expression "(int *)(iVar7 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }" { (expression_statement "dVar2 = dVar2 / (double)DAT_002e814c;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002e814c" identifier = (binary_expression "dVar2 / (double)DAT_002e814c" identifier / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" if (parenthesized_expression "((double)DAT_002e8150 <= dVar2)" ( (binary_expression "(double)DAT_002e8150 <= dVar2" (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                        uVar24 = 0xff;\n                      }" { (expression_statement "uVar24 = 0xff;" (assignment_expression "uVar24 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" else (compound_statement "{\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" { (expression_statement "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" identifier (argument_list "(dVar2 + (double)DAT_002df2b8)" ( (binary_expression "dVar2 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) }))) })) (expression_statement "local_9c[iVar23] = uVar24;" (assignment_expression "local_9c[iVar23] = uVar24" (subscript_expression "local_9c[iVar23]" identifier [ identifier ]) = identifier) ;) (expression_statement "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);" (assignment_expression "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8)" identifier = (pointer_expression "*(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8)" * (cast_expression "(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + *(int *)(iVar7 + 0x20) * 8)" ( (binary_expression "iVar12 + *(int *)(iVar7 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar7 + 0x20) * 8" (pointer_expression "*(int *)(iVar7 + 0x20)" * (cast_expression "(int *)(iVar7 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x20)" ( (binary_expression "iVar7 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }" { (expression_statement "dVar2 = dVar2 / (double)DAT_002e814c;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002e814c" identifier = (binary_expression "dVar2 / (double)DAT_002e814c" identifier / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" if (parenthesized_expression "((double)DAT_002e8150 <= dVar2)" ( (binary_expression "(double)DAT_002e8150 <= dVar2" (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                        uVar24 = 0xff;\n                      }" { (expression_statement "uVar24 = 0xff;" (assignment_expression "uVar24 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" else (compound_statement "{\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" { (expression_statement "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" identifier (argument_list "(dVar2 + (double)DAT_002df2b8)" ( (binary_expression "dVar2 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) }))) })) (expression_statement "local_90[iVar23] = uVar24;" (assignment_expression "local_90[iVar23] = uVar24" (subscript_expression "local_90[iVar23]" identifier [ identifier ]) = identifier) ;) (expression_statement "local_a4 = puVar21;" (assignment_expression "local_a4 = puVar21" identifier = identifier) ;) (if_statement "if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }" { (expression_statement "local_a4 = puVar21 + 1;" (assignment_expression "local_a4 = puVar21 + 1" identifier = (binary_expression "puVar21 + 1" identifier + number_literal)) ;) (expression_statement "uVar24 = 0xff;" (assignment_expression "uVar24 = 0xff" identifier = number_literal) ;) (if_statement "if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }" if (parenthesized_expression "(*(int *)(iVar7 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar7 + 0x34) != 0" (pointer_expression "*(int *)(iVar7 + 0x34)" * (cast_expression "(int *)(iVar7 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x34)" ( (binary_expression "iVar7 + 0x34" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }" { (expression_statement "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);" (assignment_expression "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8)" identifier = (pointer_expression "*(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8)" * (cast_expression "(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + *(int *)(iVar7 + 0x38) * 8)" ( (binary_expression "iVar12 + *(int *)(iVar7 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar7 + 0x38) * 8" (pointer_expression "*(int *)(iVar7 + 0x38)" * (cast_expression "(int *)(iVar7 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x38)" ( (binary_expression "iVar7 + 0x38" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" { (expression_statement "dVar2 = dVar2 / (double)DAT_002e814c;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002e814c" identifier = (binary_expression "dVar2 / (double)DAT_002e814c" identifier / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" if (parenthesized_expression "((double)DAT_002e8150 <= dVar2)" ( (binary_expression "(double)DAT_002e8150 <= dVar2" (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                            uVar24 = 0xff;\n                          }" { (expression_statement "uVar24 = 0xff;" (assignment_expression "uVar24 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" else (compound_statement "{\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" { (expression_statement "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" identifier (argument_list "(dVar2 + (double)DAT_002df2b8)" ( (binary_expression "dVar2 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) }))) })) })) (expression_statement "*puVar21 = uVar24;" (assignment_expression "*puVar21 = uVar24" (pointer_expression "*puVar21" * identifier) = identifier) ;) })) (expression_statement "iVar12 = iVar12 + iVar6 * 8;" (assignment_expression "iVar12 = iVar12 + iVar6 * 8" identifier = (binary_expression "iVar12 + iVar6 * 8" identifier + (binary_expression "iVar6 * 8" identifier * number_literal))) ;) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "puVar21 = local_a4;" (assignment_expression "puVar21 = local_a4" identifier = identifier) ;) }) while (parenthesized_expression "(iVar17 != iVar23)" ( (binary_expression "iVar17 != iVar23" identifier != identifier) )) ;) })) (expression_statement "iVar12 = FUN_00277f10(__s);" (assignment_expression "iVar12 = FUN_00277f10(__s)" identifier = (call_expression "FUN_00277f10(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "uVar14 = uVar14 + iVar12;" (assignment_expression "uVar14 = uVar14 + iVar12" identifier = (binary_expression "uVar14 + iVar12" identifier + identifier)) ;) (if_statement "if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;" if (parenthesized_expression "((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0))" ( (binary_expression "(param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)" (parenthesized_expression "(param_2[0xccf] == 0)" ( (binary_expression "param_2[0xccf] == 0" (subscript_expression "param_2[0xccf]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)" ( (comma_expression "iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0" (assignment_expression "iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0)" identifier = (call_expression "SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0)" identifier (argument_list "(param_2,"Save/Image",local_5c,local_58,param_2[7],0)" ( identifier , (string_literal ""Save/Image"" " string_content ") , identifier , identifier , (subscript_expression "param_2[7]" identifier [ number_literal ]) , number_literal )))) , (binary_expression "iVar12 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (expression_statement "bVar28 = 0xfffffffe < local_5c;" (assignment_expression "bVar28 = 0xfffffffe < local_5c" identifier = (binary_expression "0xfffffffe < local_5c" number_literal < identifier)) ;) (expression_statement "local_5c = local_5c + 1;" (assignment_expression "local_5c = local_5c + 1" identifier = (binary_expression "local_5c + 1" identifier + number_literal)) ;) (expression_statement "local_58 = local_58 + (uint)bVar28;" (assignment_expression "local_58 = local_58 + (uint)bVar28" identifier = (binary_expression "local_58 + (uint)bVar28" identifier + (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (param_2[7] <= iVar20) break;" if (parenthesized_expression "(param_2[7] <= iVar20)" ( (binary_expression "param_2[7] <= iVar20" (subscript_expression "param_2[7]" identifier [ number_literal ]) <= identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = param_2[6];" (assignment_expression "iVar12 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) })) (labeled_statement "LAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }" statement_identifier : (if_statement "if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }" if (parenthesized_expression "((uVar14 & 1) != 0)" ( (binary_expression "(uVar14 & 1) != 0" (parenthesized_expression "(uVar14 & 1)" ( (binary_expression "uVar14 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                WriteBlobByte(param_2,0);\n              }" { (expression_statement "WriteBlobByte(param_2,0);" (call_expression "WriteBlobByte(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) }))) })) }))) }))) (expression_statement "WriteBlobMSBShort(param_2,0xff);" (call_expression "WriteBlobMSBShort(param_2,0xff)" identifier (argument_list "(param_2,0xff)" ( identifier , number_literal ))) ;) (expression_statement "TellBlob(param_2);" (call_expression "TellBlob(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "uVar11 = SeekBlob(param_2,0x200,0,0);" (assignment_expression "uVar11 = SeekBlob(param_2,0x200,0,0)" identifier = (call_expression "SeekBlob(param_2,0x200,0,0)" identifier (argument_list "(param_2,0x200,0,0)" ( identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar11);" (call_expression "WriteBlobMSBShort(param_2,uVar11)" identifier (argument_list "(param_2,uVar11)" ( identifier , identifier ))) ;) (expression_statement "RelinquishMagickMemory(__s_00);" (call_expression "RelinquishMagickMemory(__s_00)" identifier (argument_list "(__s_00)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(__s);" (call_expression "RelinquishMagickMemory(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0027872e;" goto statement_identifier ;) })) (labeled_statement "LAB_0027924d:\n      RelinquishMagickMemory(__s);" statement_identifier : (expression_statement "RelinquishMagickMemory(__s);" (call_expression "RelinquishMagickMemory(__s)" identifier (argument_list "(__s)" ( identifier ))) ;)) }))) (if_statement "if (puVar13 != (undefined4 *)0x0) {\n      RelinquishMagickMemory(puVar13);\n    }" if (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      RelinquishMagickMemory(puVar13);\n    }" { (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) })) (expression_statement "ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6);" (call_expression "ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6)" identifier (argument_list "(param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6)" ( identifier , (string_literal ""coders/pict.c"" " string_content ") , (string_literal ""WritePICTImage"" " string_content ") , number_literal , number_literal , (string_literal ""MemoryAllocationFailed"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_2 + 0xc6" identifier + number_literal) ))) ;) (expression_statement "piVar5 = (int *)param_1[3];" (assignment_expression "piVar5 = (int *)param_1[3]" identifier = (cast_expression "(int *)param_1[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "piVar9 = param_2;" (assignment_expression "piVar9 = param_2" identifier = identifier) ;) (while_statement "while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n      piVar5 = (int *)piVar8[0xccf];\n      piVar9 = piVar5;\n      param_2 = piVar8;\n    }" while (parenthesized_expression "(piVar8 = piVar9, piVar5 != (int *)0x0)" ( (comma_expression "piVar8 = piVar9, piVar5 != (int *)0x0" (assignment_expression "piVar8 = piVar9" identifier = identifier) , (binary_expression "piVar5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      piVar5 = (int *)piVar8[0xccf];\n      piVar9 = piVar5;\n      param_2 = piVar8;\n    }" { (expression_statement "piVar5 = (int *)piVar8[0xccf];" (assignment_expression "piVar5 = (int *)piVar8[0xccf]" identifier = (cast_expression "(int *)piVar8[0xccf]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0xccf]" identifier [ number_literal ]))) ;) (expression_statement "piVar9 = piVar5;" (assignment_expression "piVar9 = piVar5" identifier = identifier) ;) (expression_statement "param_2 = piVar8;" (assignment_expression "param_2 = piVar8" identifier = identifier) ;) })) }) (else_clause "else {\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6);\n    if (param_1[3] != 0) {\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }\n  }" else (compound_statement "{\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6);\n    if (param_1[3] != 0) {\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }\n  }" { (expression_statement "ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6);" (call_expression "ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6)" identifier (argument_list "(param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6)" ( identifier , (string_literal ""coders/pict.c"" " string_content ") , (string_literal ""WritePICTImage"" " string_content ") , number_literal , number_literal , (string_literal ""WidthOrHeightExceedsLimit"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_2 + 0xc6" identifier + number_literal) ))) ;) (if_statement "if (param_1[3] != 0) {\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }" if (parenthesized_expression "(param_1[3] != 0)" ( (binary_expression "param_1[3] != 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }" { (expression_statement "piVar5 = (int *)param_2[0xccf];" (assignment_expression "piVar5 = (int *)param_2[0xccf]" identifier = (cast_expression "(int *)param_2[0xccf]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[0xccf]" identifier [ number_literal ]))) ;) (while_statement "while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }" while (parenthesized_expression "(piVar9 = piVar5, piVar9 != (int *)0x0)" ( (comma_expression "piVar9 = piVar5, piVar9 != (int *)0x0" (assignment_expression "piVar9 = piVar5" identifier = identifier) , (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }" { (expression_statement "param_2 = piVar9;" (assignment_expression "param_2 = piVar9" identifier = identifier) ;) (expression_statement "piVar5 = (int *)piVar9[0xccf];" (assignment_expression "piVar5 = (int *)piVar9[0xccf]" identifier = (cast_expression "(int *)piVar9[0xccf]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[0xccf]" identifier [ number_literal ]))) ;) })) })) }))) (labeled_statement "LAB_00278720:\n  CloseBlob(param_2);" statement_identifier : (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;)) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0027872e:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar12;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar12;\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 iVar12;\n  }" { (return_statement "return iVar12;" return identifier ;) }))) (expression_statement "FUN_002decd0();" (call_expression "FUN_002decd0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (subscript_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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (subscript_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 (subscript_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 (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) ))) )) (compound_statement { (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 , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT <= IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) })))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression LIT < IDENT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") , LIT , LIT , (string_literal " string_content ") , (string_literal " string_content escape_sequence ") , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT )))) & LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT )))) & LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ])) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ])) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ])) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ])) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT )))) & LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT )))) & LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })))) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) & LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) )))) & LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (field_expression IDENT . field_identifier) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ])) + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT & LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) & LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) & LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) & LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (subscript_expression IDENT [ LIT ])) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , (subscript_expression IDENT [ LIT ]) , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + IDENT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + IDENT)) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , LIT )))) , (binary_expression IDENT == LIT)) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (subscript_expression IDENT [ LIT ])) )) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT , LIT , IDENT )))) , (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))))) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))))) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))))) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))))) ;) }))) })) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , LIT )))) , (binary_expression IDENT == LIT)) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (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 (subscript_expression IDENT [ LIT ]) <= IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) }))) })) }))) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( 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 ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") , LIT , LIT , (string_literal " string_content ") , (string_literal " string_content escape_sequence ") , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (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 (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) })) })) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "int FUN_00278530(int *param_1,int *param_2,int param_3)\n\n{\n  double *pdVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar7;\n  int *piVar8;\n  int *piVar9;\n  short sVar10;\n  undefined2 uVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  void *__s;\n  undefined1 *__s_00;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  int iVar18;\n  uint uVar19;\n  int iVar20;\n  undefined4 extraout_ECX;\n  undefined1 *puVar21;\n  undefined4 extraout_ECX_00;\n  undefined1 *puVar22;\n  int iVar23;\n  undefined1 uVar24;\n  undefined4 *puVar25;\n  uint uVar26;\n  uint uVar27;\n  int in_GS_OFFSET;\n  bool bVar28;\n  byte bVar29;\n  undefined1 *local_a4;\n  uint local_a0;\n  undefined1 *local_9c;\n  int local_98;\n  size_t local_94;\n  undefined1 *local_90;\n  undefined1 *local_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  uint local_5c;\n  int local_58;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar29 = 0;\n  uStack_14 = 0x278539;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == (int *)0x0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");\n  }\n  if (param_1[0xc7d] != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");\n  }\n  if (param_2 == (int *)0x0) {\n                    \n    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");\n  }\n  if (param_2[0xcd1] != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");\n  }\n  if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6);\n  }\n  if (((uint)param_2[6] < 0x10000) && ((uint)param_2[7] < 0x10000)) {\n    if (param_3 == 0) {\n                    \n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }\n    if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }\n    iVar12 = OpenBlob(param_1,param_2,4,param_3);\n    if (iVar12 == 0) goto LAB_0027872e;\n    TransformImageColorspace(param_2,0x17,param_3);\n    uVar14 = param_2[6];\n    dVar2 = *(double *)(param_2 + 0x7c);\n    if ((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)) {\n      dVar3 = 0.0;\n      dVar2 = 0.0;\n    }\n    else if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }\n    iVar12 = *param_2;\n    if ((*param_1 == 0xc) || (iVar12 == 1)) {\n      local_94 = uVar14 << 2;\n      if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90 = (undefined1 *)0x40;\n      iVar12 = 1;\n      local_8c = (undefined1 *)0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }\n    if ((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)) {\n      ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);\n      piVar5 = (int *)param_1[3];\n      piVar9 = param_2;\n      while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }\n      goto LAB_00278720;\n    }\n    uVar26 = param_2[7];\n    puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1);\n    __s = (void *)AcquireQuantumMemory(uVar27,1);\n    __s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);\n    if ((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)) {\n      if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }\n      if (__s != (void *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }\n    if (puVar13 != (undefined4 *)0x0) {\n      RelinquishMagickMemory(puVar13);\n    }\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6);\n    piVar5 = (int *)param_1[3];\n    piVar9 = param_2;\n    while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n      piVar5 = (int *)piVar8[0xccf];\n      piVar9 = piVar5;\n      param_2 = piVar8;\n    }\n  }\n  else {\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6);\n    if (param_1[3] != 0) {\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }\n  }\nLAB_00278720:\n  CloseBlob(param_2);\n  iVar12 = 0;\nLAB_0027872e:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar12;\n  }\n                    \n  FUN_002decd0();\n}" (primitive_type "int") (function_declarator "FUN_00278530(int *param_1,int *param_2,int param_3)" (identifier "FUN_00278530") (parameter_list "(int *param_1,int *param_2,int param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  double *pdVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int *piVar5;\n  int iVar6;\n  int iVar7;\n  int *piVar8;\n  int *piVar9;\n  short sVar10;\n  undefined2 uVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  void *__s;\n  undefined1 *__s_00;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  int iVar18;\n  uint uVar19;\n  int iVar20;\n  undefined4 extraout_ECX;\n  undefined1 *puVar21;\n  undefined4 extraout_ECX_00;\n  undefined1 *puVar22;\n  int iVar23;\n  undefined1 uVar24;\n  undefined4 *puVar25;\n  uint uVar26;\n  uint uVar27;\n  int in_GS_OFFSET;\n  bool bVar28;\n  byte bVar29;\n  undefined1 *local_a4;\n  uint local_a0;\n  undefined1 *local_9c;\n  int local_98;\n  size_t local_94;\n  undefined1 *local_90;\n  undefined1 *local_8c;\n  undefined4 local_88;\n  undefined4 local_84;\n  uint local_5c;\n  int local_58;\n  uint local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar29 = 0;\n  uStack_14 = 0x278539;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == (int *)0x0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");\n  }\n  if (param_1[0xc7d] != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");\n  }\n  if (param_2 == (int *)0x0) {\n                    \n    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");\n  }\n  if (param_2[0xcd1] != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");\n  }\n  if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6);\n  }\n  if (((uint)param_2[6] < 0x10000) && ((uint)param_2[7] < 0x10000)) {\n    if (param_3 == 0) {\n                    \n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }\n    if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }\n    iVar12 = OpenBlob(param_1,param_2,4,param_3);\n    if (iVar12 == 0) goto LAB_0027872e;\n    TransformImageColorspace(param_2,0x17,param_3);\n    uVar14 = param_2[6];\n    dVar2 = *(double *)(param_2 + 0x7c);\n    if ((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)) {\n      dVar3 = 0.0;\n      dVar2 = 0.0;\n    }\n    else if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }\n    iVar12 = *param_2;\n    if ((*param_1 == 0xc) || (iVar12 == 1)) {\n      local_94 = uVar14 << 2;\n      if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90 = (undefined1 *)0x40;\n      iVar12 = 1;\n      local_8c = (undefined1 *)0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }\n    if ((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)) {\n      ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);\n      piVar5 = (int *)param_1[3];\n      piVar9 = param_2;\n      while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }\n      goto LAB_00278720;\n    }\n    uVar26 = param_2[7];\n    puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1);\n    __s = (void *)AcquireQuantumMemory(uVar27,1);\n    __s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);\n    if ((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)) {\n      if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }\n      if (__s != (void *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }\n    if (puVar13 != (undefined4 *)0x0) {\n      RelinquishMagickMemory(puVar13);\n    }\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6);\n    piVar5 = (int *)param_1[3];\n    piVar9 = param_2;\n    while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n      piVar5 = (int *)piVar8[0xccf];\n      piVar9 = piVar5;\n      param_2 = piVar8;\n    }\n  }\n  else {\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6);\n    if (param_1[3] != 0) {\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }\n  }\nLAB_00278720:\n  CloseBlob(param_2);\n  iVar12 = 0;\nLAB_0027872e:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar12;\n  }\n                    \n  FUN_002decd0();\n}" ({ "{") (declaration "double *pdVar1;" (primitive_type "double") (pointer_declarator "*pdVar1" (* "*") (identifier "pdVar1")) (; ";")) (declaration "double dVar2;" (primitive_type "double") (identifier "dVar2") (; ";")) (declaration "double dVar3;" (primitive_type "double") (identifier "dVar3") (; ";")) (declaration "double dVar4;" (primitive_type "double") (identifier "dVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "short sVar10;" (sized_type_specifier "short" (short "short")) (identifier "sVar10") (; ";")) (declaration "undefined2 uVar11;" (type_identifier "undefined2") (identifier "uVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "void *__s;" (primitive_type "void") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "undefined1 *__s_00;" (type_identifier "undefined1") (pointer_declarator "*__s_00" (* "*") (identifier "__s_00")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "undefined4 uVar16;" (type_identifier "undefined4") (identifier "uVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "undefined1 *puVar21;" (type_identifier "undefined1") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "undefined4 extraout_ECX_00;" (type_identifier "undefined4") (identifier "extraout_ECX_00") (; ";")) (declaration "undefined1 *puVar22;" (type_identifier "undefined1") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "undefined1 uVar24;" (type_identifier "undefined1") (identifier "uVar24") (; ";")) (declaration "undefined4 *puVar25;" (type_identifier "undefined4") (pointer_declarator "*puVar25" (* "*") (identifier "puVar25")) (; ";")) (declaration "uint uVar26;" (type_identifier "uint") (identifier "uVar26") (; ";")) (declaration "uint uVar27;" (type_identifier "uint") (identifier "uVar27") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar28;" (primitive_type "bool") (identifier "bVar28") (; ";")) (declaration "byte bVar29;" (type_identifier "byte") (identifier "bVar29") (; ";")) (declaration "undefined1 *local_a4;" (type_identifier "undefined1") (pointer_declarator "*local_a4" (* "*") (identifier "local_a4")) (; ";")) (declaration "uint local_a0;" (type_identifier "uint") (identifier "local_a0") (; ";")) (declaration "undefined1 *local_9c;" (type_identifier "undefined1") (pointer_declarator "*local_9c" (* "*") (identifier "local_9c")) (; ";")) (declaration "int local_98;" (primitive_type "int") (identifier "local_98") (; ";")) (declaration "size_t local_94;" (primitive_type "size_t") (identifier "local_94") (; ";")) (declaration "undefined1 *local_90;" (type_identifier "undefined1") (pointer_declarator "*local_90" (* "*") (identifier "local_90")) (; ";")) (declaration "undefined1 *local_8c;" (type_identifier "undefined1") (pointer_declarator "*local_8c" (* "*") (identifier "local_8c")) (; ";")) (declaration "undefined4 local_88;" (type_identifier "undefined4") (identifier "local_88") (; ";")) (declaration "undefined4 local_84;" (type_identifier "undefined4") (identifier "local_84") (; ";")) (declaration "uint local_5c;" (type_identifier "uint") (identifier "local_5c") (; ";")) (declaration "int local_58;" (primitive_type "int") (identifier "local_58") (; ";")) (declaration "uint local_24;" (type_identifier "uint") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" (identifier "bVar29") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x278539;" (assignment_expression "uStack_14 = 0x278539" (identifier "uStack_14") (= "=") (number_literal "0x278539")) (; ";")) (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 == (int *)0x0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");\n  }" (if "if") (parenthesized_expression "(param_1 == (int *)0x0)" (( "(") (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");\n  }" ({ "{") (expression_statement "__assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");" (call_expression "__assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage")" (identifier "__assert_fail") (argument_list "("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage")" (( "(") (string_literal ""image_info != (const ImageInfo *) NULL"" (" """) (string_content "image_info != (const ImageInfo *) NULL") (" """)) (, ",") (string_literal ""coders/pict.c"" (" """) (string_content "coders/pict.c") (" """)) (, ",") (number_literal "0x6b5") (, ",") (string_literal ""WritePICTImage"" (" """) (string_content "WritePICTImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_1[0xc7d] != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");\n  }" (if "if") (parenthesized_expression "(param_1[0xc7d] != -0x54535255)" (( "(") (binary_expression "param_1[0xc7d] != -0x54535255" (subscript_expression "param_1[0xc7d]" (identifier "param_1") ([ "[") (number_literal "0xc7d") (] "]")) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");\n  }" ({ "{") (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage")" (identifier "__assert_fail") (argument_list "("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,\n                  "WritePICTImage")" (( "(") (string_literal ""image_info->signature == MagickCoreSignature"" (" """) (string_content "image_info->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""coders/pict.c"" (" """) (string_content "coders/pict.c") (" """)) (, ",") (number_literal "0x6b6") (, ",") (string_literal ""WritePICTImage"" (" """) (string_content "WritePICTImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 == (int *)0x0) {\n                    \n    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");\n  }" (if "if") (parenthesized_expression "(param_2 == (int *)0x0)" (( "(") (binary_expression "param_2 == (int *)0x0" (identifier "param_2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");\n  }" ({ "{") (expression_statement "__assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");" (call_expression "__assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage")" (identifier "__assert_fail") (argument_list "("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage")" (( "(") (string_literal ""image != (Image *) NULL"" (" """) (string_content "image != (Image *) NULL") (" """)) (, ",") (string_literal ""coders/pict.c"" (" """) (string_content "coders/pict.c") (" """)) (, ",") (number_literal "0x6b7") (, ",") (string_literal ""WritePICTImage"" (" """) (string_content "WritePICTImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2[0xcd1] != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");\n  }" (if "if") (parenthesized_expression "(param_2[0xcd1] != -0x54535255)" (( "(") (binary_expression "param_2[0xcd1] != -0x54535255" (subscript_expression "param_2[0xcd1]" (identifier "param_2") ([ "[") (number_literal "0xcd1") (] "]")) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n                    \n    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");\n  }" ({ "{") (expression_statement "__assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage")" (identifier "__assert_fail") (argument_list "("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage")" (( "(") (string_literal ""image->signature == MagickCoreSignature"" (" """) (string_content "image->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""coders/pict.c"" (" """) (string_content "coders/pict.c") (" """)) (, ",") (number_literal "0x6b8") (, ",") (string_literal ""WritePICTImage"" (" """) (string_content "WritePICTImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6);\n  }" (if "if") (parenthesized_expression "(param_2[0xcca] != 0)" (( "(") (binary_expression "param_2[0xcca] != 0" (subscript_expression "param_2[0xcca]" (identifier "param_2") ([ "[") (number_literal "0xcca") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6);\n  }" ({ "{") (expression_statement "LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6);" (call_expression "LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6)" (identifier "LogMagickEvent") (argument_list "(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6)" (( "(") (number_literal "0x8000") (, ",") (string_literal ""coders/pict.c"" (" """) (string_content "coders/pict.c") (" """)) (, ",") (string_literal ""WritePICTImage"" (" """) (string_content "WritePICTImage") (" """)) (, ",") (number_literal "0x6ba") (, ",") (pointer_expression "&DAT_002f75ae" (& "&") (identifier "DAT_002f75ae")) (, ",") (binary_expression "param_2 + 0xc6" (identifier "param_2") (+ "+") (number_literal "0xc6")) () ")"))) (; ";")) (} "}"))) (if_statement "if (((uint)param_2[6] < 0x10000) && ((uint)param_2[7] < 0x10000)) {\n    if (param_3 == 0) {\n                    \n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }\n    if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }\n    iVar12 = OpenBlob(param_1,param_2,4,param_3);\n    if (iVar12 == 0) goto LAB_0027872e;\n    TransformImageColorspace(param_2,0x17,param_3);\n    uVar14 = param_2[6];\n    dVar2 = *(double *)(param_2 + 0x7c);\n    if ((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)) {\n      dVar3 = 0.0;\n      dVar2 = 0.0;\n    }\n    else if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }\n    iVar12 = *param_2;\n    if ((*param_1 == 0xc) || (iVar12 == 1)) {\n      local_94 = uVar14 << 2;\n      if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90 = (undefined1 *)0x40;\n      iVar12 = 1;\n      local_8c = (undefined1 *)0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }\n    if ((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)) {\n      ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);\n      piVar5 = (int *)param_1[3];\n      piVar9 = param_2;\n      while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }\n      goto LAB_00278720;\n    }\n    uVar26 = param_2[7];\n    puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1);\n    __s = (void *)AcquireQuantumMemory(uVar27,1);\n    __s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);\n    if ((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)) {\n      if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }\n      if (__s != (void *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }\n    if (puVar13 != (undefined4 *)0x0) {\n      RelinquishMagickMemory(puVar13);\n    }\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6);\n    piVar5 = (int *)param_1[3];\n    piVar9 = param_2;\n    while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n      piVar5 = (int *)piVar8[0xccf];\n      piVar9 = piVar5;\n      param_2 = piVar8;\n    }\n  }\n  else {\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6);\n    if (param_1[3] != 0) {\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }\n  }" (if "if") (parenthesized_expression "(((uint)param_2[6] < 0x10000) && ((uint)param_2[7] < 0x10000))" (( "(") (binary_expression "((uint)param_2[6] < 0x10000) && ((uint)param_2[7] < 0x10000)" (parenthesized_expression "((uint)param_2[6] < 0x10000)" (( "(") (binary_expression "(uint)param_2[6] < 0x10000" (cast_expression "(uint)param_2[6]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (< "<") (number_literal "0x10000")) () ")")) (&& "&&") (parenthesized_expression "((uint)param_2[7] < 0x10000)" (( "(") (binary_expression "(uint)param_2[7] < 0x10000" (cast_expression "(uint)param_2[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (< "<") (number_literal "0x10000")) () ")"))) () ")")) (compound_statement "{\n    if (param_3 == 0) {\n                    \n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }\n    if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }\n    iVar12 = OpenBlob(param_1,param_2,4,param_3);\n    if (iVar12 == 0) goto LAB_0027872e;\n    TransformImageColorspace(param_2,0x17,param_3);\n    uVar14 = param_2[6];\n    dVar2 = *(double *)(param_2 + 0x7c);\n    if ((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)) {\n      dVar3 = 0.0;\n      dVar2 = 0.0;\n    }\n    else if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }\n    iVar12 = *param_2;\n    if ((*param_1 == 0xc) || (iVar12 == 1)) {\n      local_94 = uVar14 << 2;\n      if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90 = (undefined1 *)0x40;\n      iVar12 = 1;\n      local_8c = (undefined1 *)0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }\n    if ((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)) {\n      ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);\n      piVar5 = (int *)param_1[3];\n      piVar9 = param_2;\n      while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }\n      goto LAB_00278720;\n    }\n    uVar26 = param_2[7];\n    puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1);\n    __s = (void *)AcquireQuantumMemory(uVar27,1);\n    __s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);\n    if ((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)) {\n      if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }\n      if (__s != (void *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }\n    if (puVar13 != (undefined4 *)0x0) {\n      RelinquishMagickMemory(puVar13);\n    }\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6);\n    piVar5 = (int *)param_1[3];\n    piVar9 = param_2;\n    while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n      piVar5 = (int *)piVar8[0xccf];\n      piVar9 = piVar5;\n      param_2 = piVar8;\n    }\n  }" ({ "{") (if_statement "if (param_3 == 0) {\n                    \n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");\n    }" ({ "{") (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage")" (identifier "__assert_fail") (argument_list "("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage")" (( "(") (string_literal ""exception != (ExceptionInfo *) NULL"" (" """) (string_content "exception != (ExceptionInfo *) NULL") (" """)) (, ",") (string_literal ""coders/pict.c"" (" """) (string_content "coders/pict.c") (" """)) (, ",") (number_literal "0x6bd") (, ",") (string_literal ""WritePICTImage"" (" """) (string_content "WritePICTImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }" (if "if") (parenthesized_expression "(*(int *)(param_3 + 0x1c) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_3 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_3 + 0x1c)" (* "*") (cast_expression "(int *)(param_3 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x1c)" (( "(") (binary_expression "param_3 + 0x1c" (identifier "param_3") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n                    \n      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");\n    }" ({ "{") (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage");" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage")" (identifier "__assert_fail") (argument_list "("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,\n                    "WritePICTImage")" (( "(") (string_literal ""exception->signature == MagickCoreSignature"" (" """) (string_content "exception->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""coders/pict.c"" (" """) (string_content "coders/pict.c") (" """)) (, ",") (number_literal "0x6be") (, ",") (string_literal ""WritePICTImage"" (" """) (string_content "WritePICTImage") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar12 = OpenBlob(param_1,param_2,4,param_3);" (assignment_expression "iVar12 = OpenBlob(param_1,param_2,4,param_3)" (identifier "iVar12") (= "=") (call_expression "OpenBlob(param_1,param_2,4,param_3)" (identifier "OpenBlob") (argument_list "(param_1,param_2,4,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "4") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar12 == 0) goto LAB_0027872e;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0027872e;" (goto "goto") (statement_identifier "LAB_0027872e") (; ";"))) (expression_statement "TransformImageColorspace(param_2,0x17,param_3);" (call_expression "TransformImageColorspace(param_2,0x17,param_3)" (identifier "TransformImageColorspace") (argument_list "(param_2,0x17,param_3)" (( "(") (identifier "param_2") (, ",") (number_literal "0x17") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "uVar14 = param_2[6];" (assignment_expression "uVar14 = param_2[6]" (identifier "uVar14") (= "=") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "dVar2 = *(double *)(param_2 + 0x7c);" (assignment_expression "dVar2 = *(double *)(param_2 + 0x7c)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_2 + 0x7c)" (* "*") (cast_expression "(double *)(param_2 + 0x7c)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x7c)" (( "(") (binary_expression "param_2 + 0x7c" (identifier "param_2") (+ "+") (number_literal "0x7c")) () ")"))))) (; ";")) (if_statement "if ((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)) {\n      dVar3 = 0.0;\n      dVar2 = 0.0;\n    }\n    else if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }" (if "if") (parenthesized_expression "((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0))" (( "(") (binary_expression "(dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)" (parenthesized_expression "(dVar2 <= DAT_002df2d0)" (( "(") (binary_expression "dVar2 <= DAT_002df2d0" (identifier "dVar2") (<= "<=") (identifier "DAT_002df2d0")) () ")")) (|| "||") (parenthesized_expression "(dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)" (( "(") (comma_expression "dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0" (assignment_expression "dVar3 = *(double *)(param_2 + 0x7e)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(param_2 + 0x7e)" (* "*") (cast_expression "(double *)(param_2 + 0x7e)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x7e)" (( "(") (binary_expression "param_2 + 0x7e" (identifier "param_2") (+ "+") (number_literal "0x7e")) () ")"))))) (, ",") (binary_expression "dVar3 <= DAT_002df2d0" (identifier "dVar3") (<= "<=") (identifier "DAT_002df2d0"))) () ")"))) () ")")) (compound_statement "{\n      dVar3 = 0.0;\n      dVar2 = 0.0;\n    }" ({ "{") (expression_statement "dVar3 = 0.0;" (assignment_expression "dVar3 = 0.0" (identifier "dVar3") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" (identifier "dVar2") (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }" (else "else") (if_statement "if (param_2[0x77] == 2) {\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }" (if "if") (parenthesized_expression "(param_2[0x77] == 2)" (( "(") (binary_expression "param_2[0x77] == 2" (subscript_expression "param_2[0x77]" (identifier "param_2") ([ "[") (number_literal "0x77") (] "]")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      dVar2 = dVar2 * _DAT_002f84b0;\n      dVar3 = _DAT_002f84b0 * dVar3;\n    }" ({ "{") (expression_statement "dVar2 = dVar2 * _DAT_002f84b0;" (assignment_expression "dVar2 = dVar2 * _DAT_002f84b0" (identifier "dVar2") (= "=") (binary_expression "dVar2 * _DAT_002f84b0" (identifier "dVar2") (* "*") (identifier "_DAT_002f84b0"))) (; ";")) (expression_statement "dVar3 = _DAT_002f84b0 * dVar3;" (assignment_expression "dVar3 = _DAT_002f84b0 * dVar3" (identifier "dVar3") (= "=") (binary_expression "_DAT_002f84b0 * dVar3" (identifier "_DAT_002f84b0") (* "*") (identifier "dVar3"))) (; ";")) (} "}"))))) (expression_statement "iVar12 = *param_2;" (assignment_expression "iVar12 = *param_2" (identifier "iVar12") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if ((*param_1 == 0xc) || (iVar12 == 1)) {\n      local_94 = uVar14 << 2;\n      if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90 = (undefined1 *)0x40;\n      iVar12 = 1;\n      local_8c = (undefined1 *)0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }\n    else {\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }" (if "if") (parenthesized_expression "((*param_1 == 0xc) || (iVar12 == 1))" (( "(") (binary_expression "(*param_1 == 0xc) || (iVar12 == 1)" (parenthesized_expression "(*param_1 == 0xc)" (( "(") (binary_expression "*param_1 == 0xc" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0xc")) () ")")) (|| "||") (parenthesized_expression "(iVar12 == 1)" (( "(") (binary_expression "iVar12 == 1" (identifier "iVar12") (== "==") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n      local_94 = uVar14 << 2;\n      if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }\n      local_90 = (undefined1 *)0x40;\n      iVar12 = 1;\n      local_8c = (undefined1 *)0x20;\n      local_88 = 0x10;\n      local_84 = 4;\n    }" ({ "{") (expression_statement "local_94 = uVar14 << 2;" (assignment_expression "local_94 = uVar14 << 2" (identifier "local_94") (= "=") (binary_expression "uVar14 << 2" (identifier "uVar14") (<< "<<") (number_literal "2"))) (; ";")) (if_statement "if (param_2[0xa5] == 0) {\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }\n      else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }" (if "if") (parenthesized_expression "(param_2[0xa5] == 0)" (( "(") (binary_expression "param_2[0xa5] == 0" (subscript_expression "param_2[0xa5]" (identifier "param_2") ([ "[") (number_literal "0xa5") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_9c._0_2_ = 3;\n        local_a0 = uVar14 * 3;\n      }" ({ "{") (expression_statement "local_9c._0_2_ = 3;" (assignment_expression "local_9c._0_2_ = 3" (field_expression "local_9c._0_2_" (identifier "local_9c") (. ".") (field_identifier "_0_2_")) (= "=") (number_literal "3")) (; ";")) (expression_statement "local_a0 = uVar14 * 3;" (assignment_expression "local_a0 = uVar14 * 3" (identifier "local_a0") (= "=") (binary_expression "uVar14 * 3" (identifier "uVar14") (* "*") (number_literal "3"))) (; ";")) (} "}")) (else_clause "else {\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }" (else "else") (compound_statement "{\n        local_9c._0_2_ = 4;\n        local_a0 = local_94;\n      }" ({ "{") (expression_statement "local_9c._0_2_ = 4;" (assignment_expression "local_9c._0_2_ = 4" (field_expression "local_9c._0_2_" (identifier "local_9c") (. ".") (field_identifier "_0_2_")) (= "=") (number_literal "4")) (; ";")) (expression_statement "local_a0 = local_94;" (assignment_expression "local_a0 = local_94" (identifier "local_a0") (= "=") (identifier "local_94")) (; ";")) (} "}")))) (expression_statement "local_90 = (undefined1 *)0x40;" (assignment_expression "local_90 = (undefined1 *)0x40" (identifier "local_90") (= "=") (cast_expression "(undefined1 *)0x40" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x40"))) (; ";")) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" (identifier "iVar12") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_8c = (undefined1 *)0x20;" (assignment_expression "local_8c = (undefined1 *)0x20" (identifier "local_8c") (= "=") (cast_expression "(undefined1 *)0x20" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x20"))) (; ";")) (expression_statement "local_88 = 0x10;" (assignment_expression "local_88 = 0x10" (identifier "local_88") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "local_84 = 4;" (assignment_expression "local_84 = 4" (identifier "local_84") (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }" (else "else") (compound_statement "{\n      local_90 = (undefined1 *)0x0;\n      local_8c = (undefined1 *)0x8;\n      local_88 = 0;\n      local_84 = 0;\n      local_9c._0_2_ = 1;\n      local_a0 = uVar14;\n      local_94 = uVar14;\n    }" ({ "{") (expression_statement "local_90 = (undefined1 *)0x0;" (assignment_expression "local_90 = (undefined1 *)0x0" (identifier "local_90") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_8c = (undefined1 *)0x8;" (assignment_expression "local_8c = (undefined1 *)0x8" (identifier "local_8c") (= "=") (cast_expression "(undefined1 *)0x8" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x8"))) (; ";")) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" (identifier "local_88") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" (identifier "local_84") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_9c._0_2_ = 1;" (assignment_expression "local_9c._0_2_ = 1" (field_expression "local_9c._0_2_" (identifier "local_9c") (. ".") (field_identifier "_0_2_")) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_a0 = uVar14;" (assignment_expression "local_a0 = uVar14" (identifier "local_a0") (= "=") (identifier "uVar14")) (; ";")) (expression_statement "local_94 = uVar14;" (assignment_expression "local_94 = uVar14" (identifier "local_94") (= "=") (identifier "uVar14")) (; ";")) (} "}")))) (if_statement "if ((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)) {\n      ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);\n      piVar5 = (int *)param_1[3];\n      piVar9 = param_2;\n      while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }\n      goto LAB_00278720;\n    }" (if "if") (parenthesized_expression "((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27))" (( "(") (binary_expression "(0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)" (parenthesized_expression "(0x7ffe < local_a0 - 1)" (( "(") (binary_expression "0x7ffe < local_a0 - 1" (number_literal "0x7ffe") (< "<") (binary_expression "local_a0 - 1" (identifier "local_a0") (- "-") (number_literal "1"))) () ")")) (|| "||") (parenthesized_expression "(uVar27 = local_94 + 0x100, 0x7ffe < uVar27)" (( "(") (comma_expression "uVar27 = local_94 + 0x100, 0x7ffe < uVar27" (assignment_expression "uVar27 = local_94 + 0x100" (identifier "uVar27") (= "=") (binary_expression "local_94 + 0x100" (identifier "local_94") (+ "+") (number_literal "0x100"))) (, ",") (binary_expression "0x7ffe < uVar27" (number_literal "0x7ffe") (< "<") (identifier "uVar27"))) () ")"))) () ")")) (compound_statement "{\n      ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);\n      piVar5 = (int *)param_1[3];\n      piVar9 = param_2;\n      while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }\n      goto LAB_00278720;\n    }" ({ "{") (expression_statement "ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6);" (call_expression "ThrowMagickException\n                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6)" (identifier "ThrowMagickException") (argument_list "(param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",\n                 "`%s\'",param_2 + 0xc6)" (( "(") (identifier "param_3") (, ",") (string_literal ""coders/pict.c"" (" """) (string_content "coders/pict.c") (" """)) (, ",") (string_literal ""WritePICTImage"" (" """) (string_content "WritePICTImage") (" """)) (, ",") (number_literal "0x700") (, ",") (number_literal "0x1d1") (, ",") (string_literal ""WidthOrHeightExceedsLimit"" (" """) (string_content "WidthOrHeightExceedsLimit") (" """)) (, ",") (string_literal ""`%s\'"" (" """) (string_content "`%s") (escape_sequence "\'") (" """)) (, ",") (binary_expression "param_2 + 0xc6" (identifier "param_2") (+ "+") (number_literal "0xc6")) () ")"))) (; ";")) (expression_statement "piVar5 = (int *)param_1[3];" (assignment_expression "piVar5 = (int *)param_1[3]" (identifier "piVar5") (= "=") (cast_expression "(int *)param_1[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "piVar9 = param_2;" (assignment_expression "piVar9 = param_2" (identifier "piVar9") (= "=") (identifier "param_2")) (; ";")) (while_statement "while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }" (while "while") (parenthesized_expression "(piVar8 = piVar9, piVar5 != (int *)0x0)" (( "(") (comma_expression "piVar8 = piVar9, piVar5 != (int *)0x0" (assignment_expression "piVar8 = piVar9" (identifier "piVar8") (= "=") (identifier "piVar9")) (, ",") (binary_expression "piVar5 != (int *)0x0" (identifier "piVar5") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n        piVar5 = (int *)piVar8[0xccf];\n        piVar9 = piVar5;\n        param_2 = piVar8;\n      }" ({ "{") (expression_statement "piVar5 = (int *)piVar8[0xccf];" (assignment_expression "piVar5 = (int *)piVar8[0xccf]" (identifier "piVar5") (= "=") (cast_expression "(int *)piVar8[0xccf]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0xccf]" (identifier "piVar8") ([ "[") (number_literal "0xccf") (] "]")))) (; ";")) (expression_statement "piVar9 = piVar5;" (assignment_expression "piVar9 = piVar5" (identifier "piVar9") (= "=") (identifier "piVar5")) (; ";")) (expression_statement "param_2 = piVar8;" (assignment_expression "param_2 = piVar8" (identifier "param_2") (= "=") (identifier "piVar8")) (; ";")) (} "}"))) (goto_statement "goto LAB_00278720;" (goto "goto") (statement_identifier "LAB_00278720") (; ";")) (} "}"))) (expression_statement "uVar26 = param_2[7];" (assignment_expression "uVar26 = param_2[7]" (identifier "uVar26") (= "=") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1);" (assignment_expression "puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)AcquireQuantumMemory(0x200,1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "AcquireQuantumMemory(0x200,1)" (identifier "AcquireQuantumMemory") (argument_list "(0x200,1)" (( "(") (number_literal "0x200") (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "__s = (void *)AcquireQuantumMemory(uVar27,1);" (assignment_expression "__s = (void *)AcquireQuantumMemory(uVar27,1)" (identifier "__s") (= "=") (cast_expression "(void *)AcquireQuantumMemory(uVar27,1)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "AcquireQuantumMemory(uVar27,1)" (identifier "AcquireQuantumMemory") (argument_list "(uVar27,1)" (( "(") (identifier "uVar27") (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "__s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);" (assignment_expression "__s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1)" (identifier "__s_00") (= "=") (cast_expression "(undefined1 *)AcquireQuantumMemory(local_94,1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "AcquireQuantumMemory(local_94,1)" (identifier "AcquireQuantumMemory") (argument_list "(local_94,1)" (( "(") (identifier "local_94") (, ",") (number_literal "1") () ")"))))) (; ";")) (if_statement "if ((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)) {\n      if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }\n      if (__s != (void *)0x0) goto LAB_0027924d;\n    }\n    else {\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }" (if "if") (parenthesized_expression "((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0))" (( "(") (binary_expression "(puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)" (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 == (undefined4 *)0x0" (identifier "puVar13") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(__s == (void *)0x0)" (( "(") (binary_expression "__s == (void *)0x0" (identifier "__s") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n      if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }\n      if (__s != (void *)0x0) goto LAB_0027924d;\n    }" ({ "{") (if_statement "if (__s_00 != (undefined1 *)0x0) {\n        RelinquishMagickMemory(__s_00);\n      }" (if "if") (parenthesized_expression "(__s_00 != (undefined1 *)0x0)" (( "(") (binary_expression "__s_00 != (undefined1 *)0x0" (identifier "__s_00") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        RelinquishMagickMemory(__s_00);\n      }" ({ "{") (expression_statement "RelinquishMagickMemory(__s_00);" (call_expression "RelinquishMagickMemory(__s_00)" (identifier "RelinquishMagickMemory") (argument_list "(__s_00)" (( "(") (identifier "__s_00") () ")"))) (; ";")) (} "}"))) (if_statement "if (__s != (void *)0x0) goto LAB_0027924d;" (if "if") (parenthesized_expression "(__s != (void *)0x0)" (( "(") (binary_expression "__s != (void *)0x0" (identifier "__s") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0027924d;" (goto "goto") (statement_identifier "LAB_0027924d") (; ";"))) (} "}")) (else_clause "else {\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }" (else "else") (compound_statement "{\n      if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }\nLAB_0027924d:\n      RelinquishMagickMemory(__s);\n    }" ({ "{") (if_statement "if (__s_00 != (undefined1 *)0x0) {\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }" (if "if") (parenthesized_expression "(__s_00 != (undefined1 *)0x0)" (( "(") (binary_expression "__s_00 != (undefined1 *)0x0" (identifier "__s_00") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        memset(__s_00,0,local_94);\n        memset(__s,0,uVar27);\n        puVar25 = puVar13;\n        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }\n        WriteBlob(param_2,0x200,puVar13);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        uVar26 = uVar26 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar26);\n        uVar14 = uVar14 & 0xffff;\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0x11);\n        WriteBlobMSBShort(param_2,0x2ff);\n        WriteBlobMSBShort(param_2,0xc00);\n        WriteBlobMSBLong(param_2,0xfffe0000);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBLong(param_2,0);\n        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }\n        iVar20 = GetImageProfile(param_2,&DAT_002e832a);\n        if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }\n        WriteBlobMSBShort(param_2,1);\n        WriteBlobMSBShort(param_2,10);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }\nLAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }\n        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,uVar26);\n        WriteBlobMSBShort(param_2,uVar14);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_84);\n        WriteBlobMSBLong(param_2,0);\n        dVar4 = (double)DAT_002df2b8;\n        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);\n        WriteBlobMSBShort(param_2,0);\n        WriteBlobMSBShort(param_2,local_88);\n        WriteBlobMSBShort(param_2,local_8c);\n        WriteBlobMSBShort(param_2,local_9c._0_2_);\n        WriteBlobMSBShort(param_2,8);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }\n        WriteBlobMSBShort(param_2,0xff);\n        TellBlob(param_2);\n        uVar11 = SeekBlob(param_2,0x200,0,0);\n        WriteBlobMSBShort(param_2,uVar11);\n        RelinquishMagickMemory(__s_00);\n        RelinquishMagickMemory(__s);\n        RelinquishMagickMemory(puVar13);\n        CloseBlob(param_2);\n        iVar12 = 1;\n        goto LAB_0027872e;\n      }" ({ "{") (expression_statement "memset(__s_00,0,local_94);" (call_expression "memset(__s_00,0,local_94)" (identifier "memset") (argument_list "(__s_00,0,local_94)" (( "(") (identifier "__s_00") (, ",") (number_literal "0") (, ",") (identifier "local_94") () ")"))) (; ";")) (expression_statement "memset(__s,0,uVar27);" (call_expression "memset(__s,0,uVar27)" (identifier "memset") (argument_list "(__s,0,uVar27)" (( "(") (identifier "__s") (, ",") (number_literal "0") (, ",") (identifier "uVar27") () ")"))) (; ";")) (expression_statement "puVar25 = puVar13;" (assignment_expression "puVar25 = puVar13" (identifier "puVar25") (= "=") (identifier "puVar13")) (; ";")) (for_statement "for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }" (for "for") (( "(") (assignment_expression "iVar20 = 0x80" (identifier "iVar20") (= "=") (number_literal "0x80")) (; ";") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar20 = iVar20 + -1" (identifier "iVar20") (= "=") (binary_expression "iVar20 + -1" (identifier "iVar20") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n          *puVar25 = 0;\n          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;\n        }" ({ "{") (expression_statement "*puVar25 = 0;" (assignment_expression "*puVar25 = 0" (pointer_expression "*puVar25" (* "*") (identifier "puVar25")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar25 = puVar25 + (uint)bVar29 * -2 + 1;" (assignment_expression "puVar25 = puVar25 + (uint)bVar29 * -2 + 1" (identifier "puVar25") (= "=") (binary_expression "puVar25 + (uint)bVar29 * -2 + 1" (binary_expression "puVar25 + (uint)bVar29 * -2" (identifier "puVar25") (+ "+") (binary_expression "(uint)bVar29 * -2" (cast_expression "(uint)bVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "WriteBlob(param_2,0x200,puVar13);" (call_expression "WriteBlob(param_2,0x200,puVar13)" (identifier "WriteBlob") (argument_list "(param_2,0x200,puVar13)" (( "(") (identifier "param_2") (, ",") (number_literal "0x200") (, ",") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "uVar26 = uVar26 & 0xffff;" (assignment_expression "uVar26 = uVar26 & 0xffff" (identifier "uVar26") (= "=") (binary_expression "uVar26 & 0xffff" (identifier "uVar26") (& "&") (number_literal "0xffff"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar26)" (( "(") (identifier "param_2") (, ",") (identifier "uVar26") () ")"))) (; ";")) (expression_statement "uVar14 = uVar14 & 0xffff;" (assignment_expression "uVar14 = uVar14 & 0xffff" (identifier "uVar14") (= "=") (binary_expression "uVar14 & 0xffff" (identifier "uVar14") (& "&") (number_literal "0xffff"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar14)" (( "(") (identifier "param_2") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0x11);" (call_expression "WriteBlobMSBShort(param_2,0x11)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0x11)" (( "(") (identifier "param_2") (, ",") (number_literal "0x11") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0x2ff);" (call_expression "WriteBlobMSBShort(param_2,0x2ff)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0x2ff)" (( "(") (identifier "param_2") (, ",") (number_literal "0x2ff") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0xc00);" (call_expression "WriteBlobMSBShort(param_2,0xc00)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0xc00)" (( "(") (identifier "param_2") (, ",") (number_literal "0xc00") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0xfffe0000);" (call_expression "WriteBlobMSBLong(param_2,0xfffe0000)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0xfffe0000)" (( "(") (identifier "param_2") (, ",") (number_literal "0xfffe0000") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);" (call_expression "WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,(int)ROUND(dVar2) & 0xffffU)" (( "(") (identifier "param_2") (, ",") (binary_expression "(int)ROUND(dVar2) & 0xffffU" (cast_expression "(int)ROUND(dVar2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(dVar2)" (identifier "ROUND") (argument_list "(dVar2)" (( "(") (identifier "dVar2") () ")")))) (& "&") (number_literal "0xffffU")) () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);" (call_expression "WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,(int)ROUND(dVar3) & 0xffffU)" (( "(") (identifier "param_2") (, ",") (binary_expression "(int)ROUND(dVar3) & 0xffffU" (cast_expression "(int)ROUND(dVar3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(dVar3)" (identifier "ROUND") (argument_list "(dVar3)" (( "(") (identifier "dVar3") () ")")))) (& "&") (number_literal "0xffffU")) () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar26)" (( "(") (identifier "param_2") (, ",") (identifier "uVar26") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar14)" (( "(") (identifier "param_2") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar20 = GetImageProfile(param_2,&DAT_002ec69d);" (assignment_expression "iVar20 = GetImageProfile(param_2,&DAT_002ec69d)" (identifier "iVar20") (= "=") (call_expression "GetImageProfile(param_2,&DAT_002ec69d)" (identifier "GetImageProfile") (argument_list "(param_2,&DAT_002ec69d)" (( "(") (identifier "param_2") (, ",") (pointer_expression "&DAT_002ec69d" (& "&") (identifier "DAT_002ec69d")) () ")")))) (; ";")) (if_statement "if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }" (if "if") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0x1f2);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobString(param_2,&DAT_002e24fa);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n        }" ({ "{") (expression_statement "WriteBlobMSBShort(param_2,0xa1);" (call_expression "WriteBlobMSBShort(param_2,0xa1)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0xa1)" (( "(") (identifier "param_2") (, ",") (number_literal "0xa1") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0x1f2);" (call_expression "WriteBlobMSBShort(param_2,0x1f2)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0x1f2)" (( "(") (identifier "param_2") (, ",") (number_literal "0x1f2") () ")"))) (; ";")) (expression_statement "sVar10 = GetStringInfoLength(iVar20);" (assignment_expression "sVar10 = GetStringInfoLength(iVar20)" (identifier "sVar10") (= "=") (call_expression "GetStringInfoLength(iVar20)" (identifier "GetStringInfoLength") (argument_list "(iVar20)" (( "(") (identifier "iVar20") () ")")))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,sVar10 + 4);" (call_expression "WriteBlobMSBShort(param_2,sVar10 + 4)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,sVar10 + 4)" (( "(") (identifier "param_2") (, ",") (binary_expression "sVar10 + 4" (identifier "sVar10") (+ "+") (number_literal "4")) () ")"))) (; ";")) (expression_statement "WriteBlobString(param_2,&DAT_002e24fa);" (call_expression "WriteBlobString(param_2,&DAT_002e24fa)" (identifier "WriteBlobString") (argument_list "(param_2,&DAT_002e24fa)" (( "(") (identifier "param_2") (, ",") (pointer_expression "&DAT_002e24fa" (& "&") (identifier "DAT_002e24fa")) () ")"))) (; ";")) (expression_statement "uVar15 = GetStringInfoDatum(iVar20);" (assignment_expression "uVar15 = GetStringInfoDatum(iVar20)" (identifier "uVar15") (= "=") (call_expression "GetStringInfoDatum(iVar20)" (identifier "GetStringInfoDatum") (argument_list "(iVar20)" (( "(") (identifier "iVar20") () ")")))) (; ";")) (expression_statement "uVar16 = GetStringInfoLength(iVar20);" (assignment_expression "uVar16 = GetStringInfoLength(iVar20)" (identifier "uVar16") (= "=") (call_expression "GetStringInfoLength(iVar20)" (identifier "GetStringInfoLength") (argument_list "(iVar20)" (( "(") (identifier "iVar20") () ")")))) (; ";")) (expression_statement "WriteBlob(param_2,uVar16,uVar15);" (call_expression "WriteBlob(param_2,uVar16,uVar15)" (identifier "WriteBlob") (argument_list "(param_2,uVar16,uVar15)" (( "(") (identifier "param_2") (, ",") (identifier "uVar16") (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar20 = GetImageProfile(param_2,&DAT_002e832a);" (assignment_expression "iVar20 = GetImageProfile(param_2,&DAT_002e832a)" (identifier "iVar20") (= "=") (call_expression "GetImageProfile(param_2,&DAT_002e832a)" (identifier "GetImageProfile") (argument_list "(param_2,&DAT_002e832a)" (( "(") (identifier "param_2") (, ",") (pointer_expression "&DAT_002e832a" (& "&") (identifier "DAT_002e832a")) () ")")))) (; ";")) (if_statement "if (iVar20 != 0) {\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }" (if "if") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          sVar10 = GetStringInfoLength(iVar20);\n          WriteBlobMSBShort(param_2,sVar10 + 4);\n          WriteBlobMSBLong(param_2,0);\n          uVar15 = GetStringInfoDatum(iVar20);\n          uVar16 = GetStringInfoLength(iVar20);\n          WriteBlob(param_2,uVar16,uVar15);\n          WriteBlobMSBShort(param_2,0xa1);\n          WriteBlobMSBShort(param_2,0xe0);\n          WriteBlobMSBShort(param_2,4);\n          WriteBlobMSBLong(param_2,2);\n        }" ({ "{") (expression_statement "WriteBlobMSBShort(param_2,0xa1);" (call_expression "WriteBlobMSBShort(param_2,0xa1)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0xa1)" (( "(") (identifier "param_2") (, ",") (number_literal "0xa1") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0xe0);" (call_expression "WriteBlobMSBShort(param_2,0xe0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0xe0)" (( "(") (identifier "param_2") (, ",") (number_literal "0xe0") () ")"))) (; ";")) (expression_statement "sVar10 = GetStringInfoLength(iVar20);" (assignment_expression "sVar10 = GetStringInfoLength(iVar20)" (identifier "sVar10") (= "=") (call_expression "GetStringInfoLength(iVar20)" (identifier "GetStringInfoLength") (argument_list "(iVar20)" (( "(") (identifier "iVar20") () ")")))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,sVar10 + 4);" (call_expression "WriteBlobMSBShort(param_2,sVar10 + 4)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,sVar10 + 4)" (( "(") (identifier "param_2") (, ",") (binary_expression "sVar10 + 4" (identifier "sVar10") (+ "+") (number_literal "4")) () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "uVar15 = GetStringInfoDatum(iVar20);" (assignment_expression "uVar15 = GetStringInfoDatum(iVar20)" (identifier "uVar15") (= "=") (call_expression "GetStringInfoDatum(iVar20)" (identifier "GetStringInfoDatum") (argument_list "(iVar20)" (( "(") (identifier "iVar20") () ")")))) (; ";")) (expression_statement "uVar16 = GetStringInfoLength(iVar20);" (assignment_expression "uVar16 = GetStringInfoLength(iVar20)" (identifier "uVar16") (= "=") (call_expression "GetStringInfoLength(iVar20)" (identifier "GetStringInfoLength") (argument_list "(iVar20)" (( "(") (identifier "iVar20") () ")")))) (; ";")) (expression_statement "WriteBlob(param_2,uVar16,uVar15);" (call_expression "WriteBlob(param_2,uVar16,uVar15)" (identifier "WriteBlob") (argument_list "(param_2,uVar16,uVar15)" (( "(") (identifier "param_2") (, ",") (identifier "uVar16") (, ",") (identifier "uVar15") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0xa1);" (call_expression "WriteBlobMSBShort(param_2,0xa1)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0xa1)" (( "(") (identifier "param_2") (, ",") (number_literal "0xa1") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0xe0);" (call_expression "WriteBlobMSBShort(param_2,0xe0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0xe0)" (( "(") (identifier "param_2") (, ",") (number_literal "0xe0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,4);" (call_expression "WriteBlobMSBShort(param_2,4)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,4)" (( "(") (identifier "param_2") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,2);" (call_expression "WriteBlobMSBLong(param_2,2)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,2)" (( "(") (identifier "param_2") (, ",") (number_literal "2") () ")"))) (; ";")) (} "}"))) (expression_statement "WriteBlobMSBShort(param_2,1);" (call_expression "WriteBlobMSBShort(param_2,1)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,1)" (( "(") (identifier "param_2") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,10);" (call_expression "WriteBlobMSBShort(param_2,10)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,10)" (( "(") (identifier "param_2") (, ",") (number_literal "10") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar26)" (( "(") (identifier "param_2") (, ",") (identifier "uVar26") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar14)" (( "(") (identifier "param_2") (, ",") (identifier "uVar14") () ")"))) (; ";")) (if_statement "if (*param_1 == 0xc) {\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }" (if "if") (parenthesized_expression "(*param_1 == 0xc)" (( "(") (binary_expression "*param_1 == 0xc" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0xc")) () ")")) (compound_statement "{\n          iVar20 = CloneImage(param_2,0,0,1,param_3);\n          if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }\n          iVar12 = 0;\n          goto LAB_0027872e;\n        }" ({ "{") (expression_statement "iVar20 = CloneImage(param_2,0,0,1,param_3);" (assignment_expression "iVar20 = CloneImage(param_2,0,0,1,param_3)" (identifier "iVar20") (= "=") (call_expression "CloneImage(param_2,0,0,1,param_3)" (identifier "CloneImage") (argument_list "(param_2,0,0,1,param_3)" (( "(") (identifier "param_2") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar20 == 0) {\n            CloseBlob(param_2);\n          }\n          else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }" (if "if") (parenthesized_expression "(iVar20 == 0)" (( "(") (binary_expression "iVar20 == 0" (identifier "iVar20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            CloseBlob(param_2);\n          }" ({ "{") (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" (identifier "CloseBlob") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }" (else "else") (compound_statement "{\n            iVar17 = CloneImageInfo(param_1);\n            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);\n            local_24 = 0;\n            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);\n            DestroyImageInfo(iVar17);\n            if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }\n          }" ({ "{") (expression_statement "iVar17 = CloneImageInfo(param_1);" (assignment_expression "iVar17 = CloneImageInfo(param_1)" (identifier "iVar17") (= "=") (call_expression "CloneImageInfo(param_1)" (identifier "CloneImageInfo") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);" (call_expression "CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000)" (identifier "CopyMagickString") (argument_list "(iVar17 + 0x1f0,&DAT_002e2520,0x1000)" (( "(") (binary_expression "iVar17 + 0x1f0" (identifier "iVar17") (+ "+") (number_literal "0x1f0")) (, ",") (pointer_expression "&DAT_002e2520" (& "&") (identifier "DAT_002e2520")) (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);" (assignment_expression "iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3)" (identifier "iVar18") (= "=") (call_expression "ImageToBlob(iVar17,iVar20,&local_24,param_3)" (identifier "ImageToBlob") (argument_list "(iVar17,iVar20,&local_24,param_3)" (( "(") (identifier "iVar17") (, ",") (identifier "iVar20") (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "DestroyImageInfo(iVar17);" (call_expression "DestroyImageInfo(iVar17)" (identifier "DestroyImageInfo") (argument_list "(iVar17)" (( "(") (identifier "iVar17") () ")"))) (; ";")) (if_statement "if (iVar18 != 0) {\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }" (if "if") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              DestroyImage(iVar20);\n              WriteBlobMSBShort(param_2,0x8200);\n              WriteBlobMSBLong(param_2,local_24 + 0x9a);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x10000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x40000000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x400000);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0x566a70);\n              WriteBlobMSBLong(param_2,0x65670000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,1);\n              WriteBlobMSBLong(param_2,0x16170);\n              WriteBlobMSBLong(param_2,0x706c0000);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBShort(param_2,0x300);\n              WriteBlobMSBShort(param_2,(short)param_2[6]);\n              WriteBlobMSBShort(param_2,(short)param_2[7]);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);\n              WriteBlobMSBShort(param_2,0);\n              WriteBlobMSBLong(param_2,local_24);\n              WriteBlobMSBShort(param_2,1);\n              WriteBlobMSBLong(param_2,0xb466f74);\n              WriteBlobMSBLong(param_2,0x6f202d20);\n              WriteBlobMSBLong(param_2,0x4a504547);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,0);\n              WriteBlobMSBLong(param_2,&DAT_0018ffff);\n              WriteBlob(param_2,local_24,iVar18);\n              if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }\n              RelinquishMagickMemory(iVar18);\n              goto LAB_00278cac;\n            }" ({ "{") (expression_statement "DestroyImage(iVar20);" (call_expression "DestroyImage(iVar20)" (identifier "DestroyImage") (argument_list "(iVar20)" (( "(") (identifier "iVar20") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0x8200);" (call_expression "WriteBlobMSBShort(param_2,0x8200)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0x8200)" (( "(") (identifier "param_2") (, ",") (number_literal "0x8200") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,local_24 + 0x9a);" (call_expression "WriteBlobMSBLong(param_2,local_24 + 0x9a)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,local_24 + 0x9a)" (( "(") (identifier "param_2") (, ",") (binary_expression "local_24 + 0x9a" (identifier "local_24") (+ "+") (number_literal "0x9a")) () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0x10000);" (call_expression "WriteBlobMSBLong(param_2,0x10000)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0x10000)" (( "(") (identifier "param_2") (, ",") (number_literal "0x10000") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0x10000);" (call_expression "WriteBlobMSBLong(param_2,0x10000)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0x10000)" (( "(") (identifier "param_2") (, ",") (number_literal "0x10000") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0x40000000);" (call_expression "WriteBlobMSBLong(param_2,0x40000000)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0x40000000)" (( "(") (identifier "param_2") (, ",") (number_literal "0x40000000") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0x400000);" (call_expression "WriteBlobMSBLong(param_2,0x400000)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0x400000)" (( "(") (identifier "param_2") (, ",") (number_literal "0x400000") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,(short)param_2[7]);" (call_expression "WriteBlobMSBShort(param_2,(short)param_2[7])" (identifier "WriteBlobMSBShort") (argument_list "(param_2,(short)param_2[7])" (( "(") (identifier "param_2") (, ",") (cast_expression "(short)param_2[7]" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,(short)param_2[6]);" (call_expression "WriteBlobMSBShort(param_2,(short)param_2[6])" (identifier "WriteBlobMSBShort") (argument_list "(param_2,(short)param_2[6])" (( "(") (identifier "param_2") (, ",") (cast_expression "(short)param_2[6]" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0x300);" (call_expression "WriteBlobMSBShort(param_2,0x300)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0x300)" (( "(") (identifier "param_2") (, ",") (number_literal "0x300") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0x566a70);" (call_expression "WriteBlobMSBLong(param_2,0x566a70)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0x566a70)" (( "(") (identifier "param_2") (, ",") (number_literal "0x566a70") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0x65670000);" (call_expression "WriteBlobMSBLong(param_2,0x65670000)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0x65670000)" (( "(") (identifier "param_2") (, ",") (number_literal "0x65670000") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,1);" (call_expression "WriteBlobMSBLong(param_2,1)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,1)" (( "(") (identifier "param_2") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0x16170);" (call_expression "WriteBlobMSBLong(param_2,0x16170)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0x16170)" (( "(") (identifier "param_2") (, ",") (number_literal "0x16170") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0x706c0000);" (call_expression "WriteBlobMSBLong(param_2,0x706c0000)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0x706c0000)" (( "(") (identifier "param_2") (, ",") (number_literal "0x706c0000") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0x300);" (call_expression "WriteBlobMSBShort(param_2,0x300)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0x300)" (( "(") (identifier "param_2") (, ",") (number_literal "0x300") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,(short)param_2[6]);" (call_expression "WriteBlobMSBShort(param_2,(short)param_2[6])" (identifier "WriteBlobMSBShort") (argument_list "(param_2,(short)param_2[6])" (( "(") (identifier "param_2") (, ",") (cast_expression "(short)param_2[6]" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,(short)param_2[7]);" (call_expression "WriteBlobMSBShort(param_2,(short)param_2[7])" (identifier "WriteBlobMSBShort") (argument_list "(param_2,(short)param_2[7])" (( "(") (identifier "param_2") (, ",") (cast_expression "(short)param_2[7]" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);" (call_expression "WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,(int)ROUND(dVar2) & 0xffffU)" (( "(") (identifier "param_2") (, ",") (binary_expression "(int)ROUND(dVar2) & 0xffffU" (cast_expression "(int)ROUND(dVar2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(dVar2)" (identifier "ROUND") (argument_list "(dVar2)" (( "(") (identifier "dVar2") () ")")))) (& "&") (number_literal "0xffffU")) () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);" (call_expression "WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,(int)ROUND(dVar3) & 0xffffU)" (( "(") (identifier "param_2") (, ",") (binary_expression "(int)ROUND(dVar3) & 0xffffU" (cast_expression "(int)ROUND(dVar3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(dVar3)" (identifier "ROUND") (argument_list "(dVar3)" (( "(") (identifier "dVar3") () ")")))) (& "&") (number_literal "0xffffU")) () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,local_24);" (call_expression "WriteBlobMSBLong(param_2,local_24)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,local_24)" (( "(") (identifier "param_2") (, ",") (identifier "local_24") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,1);" (call_expression "WriteBlobMSBShort(param_2,1)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,1)" (( "(") (identifier "param_2") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0xb466f74);" (call_expression "WriteBlobMSBLong(param_2,0xb466f74)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0xb466f74)" (( "(") (identifier "param_2") (, ",") (number_literal "0xb466f74") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0x6f202d20);" (call_expression "WriteBlobMSBLong(param_2,0x6f202d20)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0x6f202d20)" (( "(") (identifier "param_2") (, ",") (number_literal "0x6f202d20") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0x4a504547);" (call_expression "WriteBlobMSBLong(param_2,0x4a504547)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0x4a504547)" (( "(") (identifier "param_2") (, ",") (number_literal "0x4a504547") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,&DAT_0018ffff);" (call_expression "WriteBlobMSBLong(param_2,&DAT_0018ffff)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,&DAT_0018ffff)" (( "(") (identifier "param_2") (, ",") (pointer_expression "&DAT_0018ffff" (& "&") (identifier "DAT_0018ffff")) () ")"))) (; ";")) (expression_statement "WriteBlob(param_2,local_24,iVar18);" (call_expression "WriteBlob(param_2,local_24,iVar18)" (identifier "WriteBlob") (argument_list "(param_2,local_24,iVar18)" (( "(") (identifier "param_2") (, ",") (identifier "local_24") (, ",") (identifier "iVar18") () ")"))) (; ";")) (if_statement "if ((local_24 & 1) != 0) {\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }" (if "if") (parenthesized_expression "((local_24 & 1) != 0)" (( "(") (binary_expression "(local_24 & 1) != 0" (parenthesized_expression "(local_24 & 1)" (( "(") (binary_expression "local_24 & 1" (identifier "local_24") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);\n              }" ({ "{") (expression_statement "WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);" (call_expression "WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00)" (identifier "WriteBlobByte") (argument_list "(param_2,0,extraout_ECX_00,extraout_ECX_00)" (( "(") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "extraout_ECX_00") (, ",") (identifier "extraout_ECX_00") () ")"))) (; ";")) (} "}"))) (expression_statement "RelinquishMagickMemory(iVar18);" (call_expression "RelinquishMagickMemory(iVar18)" (identifier "RelinquishMagickMemory") (argument_list "(iVar18)" (( "(") (identifier "iVar18") () ")"))) (; ";")) (goto_statement "goto LAB_00278cac;" (goto "goto") (statement_identifier "LAB_00278cac") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0027872e;" (goto "goto") (statement_identifier "LAB_0027872e") (; ";")) (} "}"))) (labeled_statement "LAB_00278cac:\n        if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }" (statement_identifier "LAB_00278cac") (: ":") (if_statement "if (iVar12 == 2) {\n          WriteBlobMSBShort(param_2,0x98);\n        }\n        else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }" (if "if") (parenthesized_expression "(iVar12 == 2)" (( "(") (binary_expression "iVar12 == 2" (identifier "iVar12") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          WriteBlobMSBShort(param_2,0x98);\n        }" ({ "{") (expression_statement "WriteBlobMSBShort(param_2,0x98);" (call_expression "WriteBlobMSBShort(param_2,0x98)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0x98)" (( "(") (identifier "param_2") (, ",") (number_literal "0x98") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }" (else "else") (compound_statement "{\n          WriteBlobMSBShort(param_2,0x9a);\n          WriteBlobMSBLong(param_2,0xff);\n        }" ({ "{") (expression_statement "WriteBlobMSBShort(param_2,0x9a);" (call_expression "WriteBlobMSBShort(param_2,0x9a)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0x9a)" (( "(") (identifier "param_2") (, ",") (number_literal "0x9a") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0xff);" (call_expression "WriteBlobMSBLong(param_2,0xff)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0xff)" (( "(") (identifier "param_2") (, ",") (number_literal "0xff") () ")"))) (; ";")) (} "}"))))) (expression_statement "WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);" (call_expression "WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,(ushort)local_94 | 0x8000)" (( "(") (identifier "param_2") (, ",") (binary_expression "(ushort)local_94 | 0x8000" (cast_expression "(ushort)local_94" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "local_94")) (| "|") (number_literal "0x8000")) () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar26)" (( "(") (identifier "param_2") (, ",") (identifier "uVar26") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar14)" (( "(") (identifier "param_2") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,local_84);" (call_expression "WriteBlobMSBShort(param_2,local_84)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,local_84)" (( "(") (identifier "param_2") (, ",") (identifier "local_84") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "dVar4 = (double)DAT_002df2b8;" (assignment_expression "dVar4 = (double)DAT_002df2b8" (identifier "dVar4") (= "=") (cast_expression "(double)DAT_002df2b8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df2b8"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);" (call_expression "WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff)" (( "(") (identifier "param_2") (, ",") (binary_expression "(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff" (cast_expression "(int)ROUND((float)dVar2 + DAT_002df2b8)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND((float)dVar2 + DAT_002df2b8)" (identifier "ROUND") (argument_list "((float)dVar2 + DAT_002df2b8)" (( "(") (binary_expression "(float)dVar2 + DAT_002df2b8" (cast_expression "(float)dVar2" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar2")) (+ "+") (identifier "DAT_002df2b8")) () ")")))) (& "&") (number_literal "0xffff")) () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);" (call_expression "WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff)" (( "(") (identifier "param_2") (, ",") (binary_expression "(int)ROUND(dVar3 + dVar4) & 0xffff" (cast_expression "(int)ROUND(dVar3 + dVar4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(dVar3 + dVar4)" (identifier "ROUND") (argument_list "(dVar3 + dVar4)" (( "(") (binary_expression "dVar3 + dVar4" (identifier "dVar3") (+ "+") (identifier "dVar4")) () ")")))) (& "&") (number_literal "0xffff")) () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,local_88);" (call_expression "WriteBlobMSBShort(param_2,local_88)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,local_88)" (( "(") (identifier "param_2") (, ",") (identifier "local_88") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,local_8c);" (call_expression "WriteBlobMSBShort(param_2,local_8c)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,local_8c)" (( "(") (identifier "param_2") (, ",") (identifier "local_8c") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,local_9c._0_2_);" (call_expression "WriteBlobMSBShort(param_2,local_9c._0_2_)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,local_9c._0_2_)" (( "(") (identifier "param_2") (, ",") (field_expression "local_9c._0_2_" (identifier "local_9c") (. ".") (field_identifier "_0_2_")) () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,8);" (call_expression "WriteBlobMSBShort(param_2,8)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,8)" (( "(") (identifier "param_2") (, ",") (number_literal "8") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (iVar12 == 2) {\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }\n        else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(iVar12 == 2)" (( "(") (binary_expression "iVar12 == 2" (identifier "iVar12") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          WriteBlobMSBLong(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);\n          if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          local_9c = (undefined1 *)0x0;\n          local_98 = 0;\n          local_a0 = 0;\n          uVar14 = 0;\n          if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }\n        }" ({ "{") (expression_statement "WriteBlobMSBLong(param_2,0);" (call_expression "WriteBlobMSBLong(param_2,0)" (identifier "WriteBlobMSBLong") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,(short)param_2[9] + -1);" (call_expression "WriteBlobMSBShort(param_2,(short)param_2[9] + -1)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,(short)param_2[9] + -1)" (( "(") (identifier "param_2") (, ",") (binary_expression "(short)param_2[9] + -1" (cast_expression "(short)param_2[9]" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "-1")) () ")"))) (; ";")) (if_statement "if (0 < param_2[9]) {\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }" (if "if") (parenthesized_expression "(0 < param_2[9])" (( "(") (binary_expression "0 < param_2[9]" (number_literal "0") (< "<") (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]"))) () ")")) (compound_statement "{\n            iVar12 = 0;\n            uVar27 = 0;\n            do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);\n          }" ({ "{") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar27 = 0;" (assignment_expression "uVar27 = 0" (identifier "uVar27") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            } while ((int)uVar27 < param_2[9]);" (do "do") (compound_statement "{\n              WriteBlobMSBShort(param_2,uVar27 & 0xffff);\n              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              WriteBlobMSBShort(param_2,uVar19);\n              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);\n              uVar19 = 0;\n              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }\n              uVar27 = uVar27 + 1;\n              iVar12 = iVar12 + 0x50;\n              WriteBlobMSBShort(param_2,uVar19);\n            }" ({ "{") (expression_statement "WriteBlobMSBShort(param_2,uVar27 & 0xffff);" (call_expression "WriteBlobMSBShort(param_2,uVar27 & 0xffff)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar27 & 0xffff)" (( "(") (identifier "param_2") (, ",") (binary_expression "uVar27 & 0xffff" (identifier "uVar27") (& "&") (number_literal "0xffff")) () ")"))) (; ";")) (expression_statement "dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);" (assignment_expression "dVar2 = *(double *)(param_2[10] + 0x20 + iVar12)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_2[10] + 0x20 + iVar12)" (* "*") (cast_expression "(double *)(param_2[10] + 0x20 + iVar12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[10] + 0x20 + iVar12)" (( "(") (binary_expression "param_2[10] + 0x20 + iVar12" (binary_expression "param_2[10] + 0x20" (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")) (+ "+") (number_literal "0x20")) (+ "+") (identifier "iVar12")) () ")"))))) (; ";")) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }" (if "if") (parenthesized_expression "((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8))" (( "(") (binary_expression "(0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)" (parenthesized_expression "(0.0 < dVar2)" (( "(") (binary_expression "0.0 < dVar2" (number_literal "0.0") (< "<") (identifier "dVar2")) () ")")) (&& "&&") (parenthesized_expression "(uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)" (( "(") (comma_expression "uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8" (assignment_expression "uVar19 = 0xffff" (identifier "uVar19") (= "=") (number_literal "0xffff")) (, ",") (binary_expression "dVar2 < (double)DAT_002df8a8" (identifier "dVar2") (< "<") (cast_expression "(double)DAT_002df8a8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df8a8")))) () ")"))) () ")")) (compound_statement "{\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }" ({ "{") (expression_statement "uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;" (assignment_expression "uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff" (identifier "uVar19") (= "=") (binary_expression "(int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff" (cast_expression "(int)ROUND(dVar2 + (double)DAT_002df2b8)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" (identifier "ROUND") (argument_list "(dVar2 + (double)DAT_002df2b8)" (( "(") (binary_expression "dVar2 + (double)DAT_002df2b8" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_002df2b8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df2b8"))) () ")")))) (& "&") (number_literal "0xffff"))) (; ";")) (} "}"))) (expression_statement "WriteBlobMSBShort(param_2,uVar19);" (call_expression "WriteBlobMSBShort(param_2,uVar19)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar19)" (( "(") (identifier "param_2") (, ",") (identifier "uVar19") () ")"))) (; ";")) (expression_statement "dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);" (assignment_expression "dVar2 = *(double *)(param_2[10] + 0x28 + iVar12)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_2[10] + 0x28 + iVar12)" (* "*") (cast_expression "(double *)(param_2[10] + 0x28 + iVar12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[10] + 0x28 + iVar12)" (( "(") (binary_expression "param_2[10] + 0x28 + iVar12" (binary_expression "param_2[10] + 0x28" (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")) (+ "+") (number_literal "0x28")) (+ "+") (identifier "iVar12")) () ")"))))) (; ";")) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }" (if "if") (parenthesized_expression "((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8))" (( "(") (binary_expression "(0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)" (parenthesized_expression "(0.0 < dVar2)" (( "(") (binary_expression "0.0 < dVar2" (number_literal "0.0") (< "<") (identifier "dVar2")) () ")")) (&& "&&") (parenthesized_expression "(uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)" (( "(") (comma_expression "uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8" (assignment_expression "uVar19 = 0xffff" (identifier "uVar19") (= "=") (number_literal "0xffff")) (, ",") (binary_expression "dVar2 < (double)DAT_002df8a8" (identifier "dVar2") (< "<") (cast_expression "(double)DAT_002df8a8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df8a8")))) () ")"))) () ")")) (compound_statement "{\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }" ({ "{") (expression_statement "uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;" (assignment_expression "uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff" (identifier "uVar19") (= "=") (binary_expression "(int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff" (cast_expression "(int)ROUND(dVar2 + (double)DAT_002df2b8)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" (identifier "ROUND") (argument_list "(dVar2 + (double)DAT_002df2b8)" (( "(") (binary_expression "dVar2 + (double)DAT_002df2b8" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_002df2b8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df2b8"))) () ")")))) (& "&") (number_literal "0xffff"))) (; ";")) (} "}"))) (expression_statement "WriteBlobMSBShort(param_2,uVar19);" (call_expression "WriteBlobMSBShort(param_2,uVar19)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar19)" (( "(") (identifier "param_2") (, ",") (identifier "uVar19") () ")"))) (; ";")) (expression_statement "dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);" (assignment_expression "dVar2 = *(double *)(param_2[10] + 0x30 + iVar12)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_2[10] + 0x30 + iVar12)" (* "*") (cast_expression "(double *)(param_2[10] + 0x30 + iVar12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[10] + 0x30 + iVar12)" (( "(") (binary_expression "param_2[10] + 0x30 + iVar12" (binary_expression "param_2[10] + 0x30" (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")) (+ "+") (number_literal "0x30")) (+ "+") (identifier "iVar12")) () ")"))))) (; ";")) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }" (if "if") (parenthesized_expression "((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8))" (( "(") (binary_expression "(0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)" (parenthesized_expression "(0.0 < dVar2)" (( "(") (binary_expression "0.0 < dVar2" (number_literal "0.0") (< "<") (identifier "dVar2")) () ")")) (&& "&&") (parenthesized_expression "(uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)" (( "(") (comma_expression "uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8" (assignment_expression "uVar19 = 0xffff" (identifier "uVar19") (= "=") (number_literal "0xffff")) (, ",") (binary_expression "dVar2 < (double)DAT_002df8a8" (identifier "dVar2") (< "<") (cast_expression "(double)DAT_002df8a8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df8a8")))) () ")"))) () ")")) (compound_statement "{\n                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;\n              }" ({ "{") (expression_statement "uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;" (assignment_expression "uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff" (identifier "uVar19") (= "=") (binary_expression "(int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff" (cast_expression "(int)ROUND(dVar2 + (double)DAT_002df2b8)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" (identifier "ROUND") (argument_list "(dVar2 + (double)DAT_002df2b8)" (( "(") (binary_expression "dVar2 + (double)DAT_002df2b8" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_002df2b8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df2b8"))) () ")")))) (& "&") (number_literal "0xffff"))) (; ";")) (} "}"))) (expression_statement "uVar27 = uVar27 + 1;" (assignment_expression "uVar27 = uVar27 + 1" (identifier "uVar27") (= "=") (binary_expression "uVar27 + 1" (identifier "uVar27") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar12 = iVar12 + 0x50;" (assignment_expression "iVar12 = iVar12 + 0x50" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 0x50" (identifier "iVar12") (+ "+") (number_literal "0x50"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,uVar19);" (call_expression "WriteBlobMSBShort(param_2,uVar19)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar19)" (( "(") (identifier "param_2") (, ",") (identifier "uVar19") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)uVar27 < param_2[9])" (( "(") (binary_expression "(int)uVar27 < param_2[9]" (cast_expression "(int)uVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar27")) (< "<") (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]"))) () ")")) (; ";")) (} "}"))) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar26)" (( "(") (identifier "param_2") (, ",") (identifier "uVar26") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar14)" (( "(") (identifier "param_2") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar26)" (( "(") (identifier "param_2") (, ",") (identifier "uVar26") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar14)" (( "(") (identifier "param_2") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,local_90);" (call_expression "WriteBlobMSBShort(param_2,local_90)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,local_90)" (( "(") (identifier "param_2") (, ",") (identifier "local_90") () ")"))) (; ";")) (expression_statement "local_9c = (undefined1 *)0x0;" (assignment_expression "local_9c = (undefined1 *)0x0" (identifier "local_9c") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" (identifier "local_98") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" (identifier "local_a0") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < param_2[7]) {\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }" (if "if") (parenthesized_expression "(0 < param_2[7])" (( "(") (binary_expression "0 < param_2[7]" (number_literal "0") (< "<") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) () ")")) (compound_statement "{\n            do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);\n            goto LAB_002792ae;\n          }" ({ "{") (do_statement "do {\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            } while ((int)local_a0 < param_2[7]);" (do "do") (compound_statement "{\n              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);\n              if (iVar12 == 0) break;\n              iVar20 = param_2[6];\n              if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }\nLAB_00279a01:\n              iVar12 = FUN_00277f10(__s);\n              uVar14 = uVar14 + iVar12;\n              if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;\n              local_a0 = local_a0 + 1;\n              bVar28 = 0xfffffffe < local_9c;\n              local_9c = (undefined1 *)((int)local_9c + 1);\n              local_98 = local_98 + (uint)bVar28;\n            }" ({ "{") (expression_statement "iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);" (assignment_expression "iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3)" (identifier "iVar12") (= "=") (call_expression "GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3)" (identifier "GetVirtualPixels") (argument_list "(param_2,0,local_a0,param_2[6],1,param_3)" (( "(") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "local_a0") (, ",") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (, ",") (number_literal "1") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar20 = param_2[6];" (assignment_expression "iVar20 = param_2[6]" (identifier "iVar20") (= "=") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if (0 < iVar20) {\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }" (if "if") (parenthesized_expression "(0 < iVar20)" (( "(") (binary_expression "0 < iVar20" (number_literal "0") (< "<") (identifier "iVar20")) () ")")) (compound_statement "{\n                iVar17 = param_2[0xa6];\n                iVar18 = param_2[0xaa];\n                puVar21 = __s_00;\n                do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);\n              }" ({ "{") (expression_statement "iVar17 = param_2[0xa6];" (assignment_expression "iVar17 = param_2[0xa6]" (identifier "iVar17") (= "=") (subscript_expression "param_2[0xa6]" (identifier "param_2") ([ "[") (number_literal "0xa6") (] "]"))) (; ";")) (expression_statement "iVar18 = param_2[0xaa];" (assignment_expression "iVar18 = param_2[0xaa]" (identifier "iVar18") (= "=") (subscript_expression "param_2[0xaa]" (identifier "param_2") ([ "[") (number_literal "0xaa") (] "]"))) (; ";")) (expression_statement "puVar21 = __s_00;" (assignment_expression "puVar21 = __s_00" (identifier "puVar21") (= "=") (identifier "__s_00")) (; ";")) (do_statement "do {\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                } while (puVar21 != __s_00 + iVar20);" (do "do") (compound_statement "{\n                  while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }\n                  *puVar21 = 0;\n                  puVar21 = puVar21 + 1;\n                  iVar12 = iVar12 + iVar17 * 8;\n                }" ({ "{") (while_statement "while (*(int *)(iVar18 + 0x40) != 0) {\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }" (while "while") (parenthesized_expression "(*(int *)(iVar18 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar18 + 0x40) != 0" (pointer_expression "*(int *)(iVar18 + 0x40)" (* "*") (cast_expression "(int *)(iVar18 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x40)" (( "(") (binary_expression "iVar18 + 0x40" (identifier "iVar18") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    puVar22 = puVar21 + 1;\n                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);\n                    iVar12 = iVar12 + iVar17 * 8;\n                    *puVar21 = (char)(short)ROUND(*pdVar1);\n                    puVar21 = puVar22;\n                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;\n                  }" ({ "{") (expression_statement "puVar22 = puVar21 + 1;" (assignment_expression "puVar22 = puVar21 + 1" (identifier "puVar22") (= "=") (binary_expression "puVar21 + 1" (identifier "puVar21") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);" (assignment_expression "pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8)" (identifier "pdVar1") (= "=") (cast_expression "(double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + *(int *)(iVar18 + 0x44) * 8)" (( "(") (binary_expression "iVar12 + *(int *)(iVar18 + 0x44) * 8" (identifier "iVar12") (+ "+") (binary_expression "*(int *)(iVar18 + 0x44) * 8" (pointer_expression "*(int *)(iVar18 + 0x44)" (* "*") (cast_expression "(int *)(iVar18 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x44)" (( "(") (binary_expression "iVar18 + 0x44" (identifier "iVar18") (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "iVar12 = iVar12 + iVar17 * 8;" (assignment_expression "iVar12 = iVar12 + iVar17 * 8" (identifier "iVar12") (= "=") (binary_expression "iVar12 + iVar17 * 8" (identifier "iVar12") (+ "+") (binary_expression "iVar17 * 8" (identifier "iVar17") (* "*") (number_literal "8")))) (; ";")) (expression_statement "*puVar21 = (char)(short)ROUND(*pdVar1);" (assignment_expression "*puVar21 = (char)(short)ROUND(*pdVar1)" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (cast_expression "(char)(short)ROUND(*pdVar1)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (cast_expression "(short)ROUND(*pdVar1)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(*pdVar1)" (identifier "ROUND") (argument_list "(*pdVar1)" (( "(") (pointer_expression "*pdVar1" (* "*") (identifier "pdVar1")) () ")")))))) (; ";")) (expression_statement "puVar21 = puVar22;" (assignment_expression "puVar21 = puVar22" (identifier "puVar21") (= "=") (identifier "puVar22")) (; ";")) (if_statement "if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;" (if "if") (parenthesized_expression "(puVar22 == __s_00 + iVar20)" (( "(") (binary_expression "puVar22 == __s_00 + iVar20" (identifier "puVar22") (== "==") (binary_expression "__s_00 + iVar20" (identifier "__s_00") (+ "+") (identifier "iVar20"))) () ")")) (goto_statement "goto LAB_00279a01;" (goto "goto") (statement_identifier "LAB_00279a01") (; ";"))) (} "}"))) (expression_statement "*puVar21 = 0;" (assignment_expression "*puVar21 = 0" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar21 = puVar21 + 1;" (assignment_expression "puVar21 = puVar21 + 1" (identifier "puVar21") (= "=") (binary_expression "puVar21 + 1" (identifier "puVar21") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar12 = iVar12 + iVar17 * 8;" (assignment_expression "iVar12 = iVar12 + iVar17 * 8" (identifier "iVar12") (= "=") (binary_expression "iVar12 + iVar17 * 8" (identifier "iVar12") (+ "+") (binary_expression "iVar17 * 8" (identifier "iVar17") (* "*") (number_literal "8")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar21 != __s_00 + iVar20)" (( "(") (binary_expression "puVar21 != __s_00 + iVar20" (identifier "puVar21") (!= "!=") (binary_expression "__s_00 + iVar20" (identifier "__s_00") (+ "+") (identifier "iVar20"))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00279a01:\n              iVar12 = FUN_00277f10(__s);" (statement_identifier "LAB_00279a01") (: ":") (expression_statement "iVar12 = FUN_00277f10(__s);" (assignment_expression "iVar12 = FUN_00277f10(__s)" (identifier "iVar12") (= "=") (call_expression "FUN_00277f10(__s)" (identifier "FUN_00277f10") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";"))) (expression_statement "uVar14 = uVar14 + iVar12;" (assignment_expression "uVar14 = uVar14 + iVar12" (identifier "uVar14") (= "=") (binary_expression "uVar14 + iVar12" (identifier "uVar14") (+ "+") (identifier "iVar12"))) (; ";")) (if_statement "if ((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)) break;" (if "if") (parenthesized_expression "((param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0))" (( "(") (binary_expression "(param_2[0xccf] == 0) &&\n                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)" (parenthesized_expression "(param_2[0xccf] == 0)" (( "(") (binary_expression "param_2[0xccf] == 0" (subscript_expression "param_2[0xccf]" (identifier "param_2") ([ "[") (number_literal "0xccf") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0)" (( "(") (comma_expression "iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),\n                 iVar12 == 0" (assignment_expression "iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0)" (identifier "iVar12") (= "=") (call_expression "SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0)" (identifier "SetImageProgress") (argument_list "(param_2,"Save/Image",local_9c,local_98,param_2[7],0)" (( "(") (identifier "param_2") (, ",") (string_literal ""Save/Image"" (" """) (string_content "Save/Image") (" """)) (, ",") (identifier "local_9c") (, ",") (identifier "local_98") (, ",") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_a0 = local_a0 + 1;" (assignment_expression "local_a0 = local_a0 + 1" (identifier "local_a0") (= "=") (binary_expression "local_a0 + 1" (identifier "local_a0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar28 = 0xfffffffe < local_9c;" (assignment_expression "bVar28 = 0xfffffffe < local_9c" (identifier "bVar28") (= "=") (binary_expression "0xfffffffe < local_9c" (number_literal "0xfffffffe") (< "<") (identifier "local_9c"))) (; ";")) (expression_statement "local_9c = (undefined1 *)((int)local_9c + 1);" (assignment_expression "local_9c = (undefined1 *)((int)local_9c + 1)" (identifier "local_9c") (= "=") (cast_expression "(undefined1 *)((int)local_9c + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_9c + 1)" (( "(") (binary_expression "(int)local_9c + 1" (cast_expression "(int)local_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9c")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_98 = local_98 + (uint)bVar28;" (assignment_expression "local_98 = local_98 + (uint)bVar28" (identifier "local_98") (= "=") (binary_expression "local_98 + (uint)bVar28" (identifier "local_98") (+ "+") (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)local_a0 < param_2[7])" (( "(") (binary_expression "(int)local_a0 < param_2[7]" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (< "<") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) () ")")) (; ";")) (goto_statement "goto LAB_002792ae;" (goto "goto") (statement_identifier "LAB_002792ae") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }" (else "else") (compound_statement "{\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,0);\n          WriteBlobMSBShort(param_2,uVar26);\n          WriteBlobMSBShort(param_2,uVar14);\n          WriteBlobMSBShort(param_2,local_90);\n          if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar26)" (( "(") (identifier "param_2") (, ",") (identifier "uVar26") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar14)" (( "(") (identifier "param_2") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,uVar26);" (call_expression "WriteBlobMSBShort(param_2,uVar26)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar26)" (( "(") (identifier "param_2") (, ",") (identifier "uVar26") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,uVar14);" (call_expression "WriteBlobMSBShort(param_2,uVar14)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar14)" (( "(") (identifier "param_2") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,local_90);" (call_expression "WriteBlobMSBShort(param_2,local_90)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,local_90)" (( "(") (identifier "param_2") (, ",") (identifier "local_90") () ")"))) (; ";")) (if_statement "if (*param_1 == 0xc) {\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }\n          else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }" (if "if") (parenthesized_expression "(*param_1 == 0xc)" (( "(") (binary_expression "*param_1 == 0xc" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0xc")) () ")")) (compound_statement "{\n            uVar16 = 0;\n            uVar15 = extraout_ECX;\n            memset(__s_00,0,local_94);\n            if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }\n          }" ({ "{") (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar15 = extraout_ECX;" (assignment_expression "uVar15 = extraout_ECX" (identifier "uVar15") (= "=") (identifier "extraout_ECX")) (; ";")) (expression_statement "memset(__s_00,0,local_94);" (call_expression "memset(__s_00,0,local_94)" (identifier "memset") (argument_list "(__s_00,0,local_94)" (( "(") (identifier "__s_00") (, ",") (number_literal "0") (, ",") (identifier "local_94") () ")"))) (; ";")) (if_statement "if (0 < param_2[7]) {\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }" (if "if") (parenthesized_expression "(0 < param_2[7])" (( "(") (binary_expression "0 < param_2[7]" (number_literal "0") (< "<") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) () ")")) (compound_statement "{\n              iVar12 = 0;\n              uVar14 = 0;\n              do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);\n              goto LAB_002792ae;\n            }" ({ "{") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              } while (iVar12 < param_2[7]);" (do "do") (compound_statement "{\n                iVar12 = iVar12 + 1;\n                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);\n                uVar14 = uVar14 + iVar20;\n              }" ({ "{") (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);" (assignment_expression "iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15)" (identifier "iVar20") (= "=") (call_expression "FUN_00277f10(__s,uVar16,local_94,uVar15)" (identifier "FUN_00277f10") (argument_list "(__s,uVar16,local_94,uVar15)" (( "(") (identifier "__s") (, ",") (identifier "uVar16") (, ",") (identifier "local_94") (, ",") (identifier "uVar15") () ")")))) (; ";")) (expression_statement "uVar14 = uVar14 + iVar20;" (assignment_expression "uVar14 = uVar14 + iVar20" (identifier "uVar14") (= "=") (binary_expression "uVar14 + iVar20" (identifier "uVar14") (+ "+") (identifier "iVar20"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar12 < param_2[7])" (( "(") (binary_expression "iVar12 < param_2[7]" (identifier "iVar12") (< "<") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) () ")")) (; ";")) (goto_statement "goto LAB_002792ae;" (goto "goto") (statement_identifier "LAB_002792ae") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }" (else "else") (compound_statement "{\n            iVar12 = param_2[6];\n            local_a4 = __s_00 + iVar12 * 3;\n            if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }\n          }" ({ "{") (expression_statement "iVar12 = param_2[6];" (assignment_expression "iVar12 = param_2[6]" (identifier "iVar12") (= "=") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "local_a4 = __s_00 + iVar12 * 3;" (assignment_expression "local_a4 = __s_00 + iVar12 * 3" (identifier "local_a4") (= "=") (binary_expression "__s_00 + iVar12 * 3" (identifier "__s_00") (+ "+") (binary_expression "iVar12 * 3" (identifier "iVar12") (* "*") (number_literal "3")))) (; ";")) (if_statement "if (0 < param_2[7]) {\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }" (if "if") (parenthesized_expression "(0 < param_2[7])" (( "(") (binary_expression "0 < param_2[7]" (number_literal "0") (< "<") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) () ")")) (compound_statement "{\n              local_5c = 0;\n              local_58 = 0;\n              iVar20 = 0;\n              uVar14 = 0;\n              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }\nLAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }\n            }" ({ "{") (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" (identifier "iVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (while_statement "while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }" (while "while") (parenthesized_expression "(iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0)" (( "(") (comma_expression "iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0" (assignment_expression "iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3)" (identifier "iVar12") (= "=") (call_expression "GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3)" (identifier "GetVirtualPixels") (argument_list "(param_2,0,iVar20,iVar12,1,param_3)" (( "(") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "iVar20") (, ",") (identifier "iVar12") (, ",") (number_literal "1") (, ",") (identifier "param_3") () ")")))) (, ",") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n                iVar17 = param_2[6];\n                puVar21 = __s_00 + iVar17;\n                puVar22 = puVar21 + iVar17;\n                iVar18 = param_2[0xa5];\n                local_9c = puVar21;\n                local_90 = puVar22;\n                local_8c = __s_00;\n                if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }\n                if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }\n                iVar12 = FUN_00277f10(__s);\n                uVar14 = uVar14 + iVar12;\n                if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;\n                iVar20 = iVar20 + 1;\n                bVar28 = 0xfffffffe < local_5c;\n                local_5c = local_5c + 1;\n                local_58 = local_58 + (uint)bVar28;\n                if (param_2[7] <= iVar20) break;\n                iVar12 = param_2[6];\n              }" ({ "{") (expression_statement "iVar17 = param_2[6];" (assignment_expression "iVar17 = param_2[6]" (identifier "iVar17") (= "=") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "puVar21 = __s_00 + iVar17;" (assignment_expression "puVar21 = __s_00 + iVar17" (identifier "puVar21") (= "=") (binary_expression "__s_00 + iVar17" (identifier "__s_00") (+ "+") (identifier "iVar17"))) (; ";")) (expression_statement "puVar22 = puVar21 + iVar17;" (assignment_expression "puVar22 = puVar21 + iVar17" (identifier "puVar22") (= "=") (binary_expression "puVar21 + iVar17" (identifier "puVar21") (+ "+") (identifier "iVar17"))) (; ";")) (expression_statement "iVar18 = param_2[0xa5];" (assignment_expression "iVar18 = param_2[0xa5]" (identifier "iVar18") (= "=") (subscript_expression "param_2[0xa5]" (identifier "param_2") ([ "[") (number_literal "0xa5") (] "]"))) (; ";")) (expression_statement "local_9c = puVar21;" (assignment_expression "local_9c = puVar21" (identifier "local_9c") (= "=") (identifier "puVar21")) (; ";")) (expression_statement "local_90 = puVar22;" (assignment_expression "local_90 = puVar22" (identifier "local_90") (= "=") (identifier "puVar22")) (; ";")) (expression_statement "local_8c = __s_00;" (assignment_expression "local_8c = __s_00" (identifier "local_8c") (= "=") (identifier "__s_00")) (; ";")) (if_statement "if (iVar18 != 0) {\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }" (if "if") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  local_90 = puVar22 + iVar17;\n                  local_a4 = __s_00;\n                  local_9c = puVar22;\n                  local_8c = puVar21;\n                }" ({ "{") (expression_statement "local_90 = puVar22 + iVar17;" (assignment_expression "local_90 = puVar22 + iVar17" (identifier "local_90") (= "=") (binary_expression "puVar22 + iVar17" (identifier "puVar22") (+ "+") (identifier "iVar17"))) (; ";")) (expression_statement "local_a4 = __s_00;" (assignment_expression "local_a4 = __s_00" (identifier "local_a4") (= "=") (identifier "__s_00")) (; ";")) (expression_statement "local_9c = puVar22;" (assignment_expression "local_9c = puVar22" (identifier "local_9c") (= "=") (identifier "puVar22")) (; ";")) (expression_statement "local_8c = puVar21;" (assignment_expression "local_8c = puVar21" (identifier "local_8c") (= "=") (identifier "puVar21")) (; ";")) (} "}"))) (if_statement "if (0 < iVar17) {\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }" (if "if") (parenthesized_expression "(0 < iVar17)" (( "(") (binary_expression "0 < iVar17" (number_literal "0") (< "<") (identifier "iVar17")) () ")")) (compound_statement "{\n                  iVar6 = param_2[0xa6];\n                  iVar23 = 0;\n                  iVar7 = param_2[0xaa];\n                  puVar21 = local_a4;\n                  do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);\n                }" ({ "{") (expression_statement "iVar6 = param_2[0xa6];" (assignment_expression "iVar6 = param_2[0xa6]" (identifier "iVar6") (= "=") (subscript_expression "param_2[0xa6]" (identifier "param_2") ([ "[") (number_literal "0xa6") (] "]"))) (; ";")) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" (identifier "iVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = param_2[0xaa];" (assignment_expression "iVar7 = param_2[0xaa]" (identifier "iVar7") (= "=") (subscript_expression "param_2[0xaa]" (identifier "param_2") ([ "[") (number_literal "0xaa") (] "]"))) (; ";")) (expression_statement "puVar21 = local_a4;" (assignment_expression "puVar21 = local_a4" (identifier "puVar21") (= "=") (identifier "local_a4")) (; ";")) (do_statement "do {\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  } while (iVar17 != iVar23);" (do "do") (compound_statement "{\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_8c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_9c[iVar23] = uVar24;\n                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);\n                    uVar24 = 0;\n                    if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }\n                    local_90[iVar23] = uVar24;\n                    local_a4 = puVar21;\n                    if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }\n                    iVar12 = iVar12 + iVar6 * 8;\n                    iVar23 = iVar23 + 1;\n                    puVar21 = local_a4;\n                  }" ({ "{") (expression_statement "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);" (assignment_expression "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(iVar12 + *(int *)(iVar7 + 8) * 8)" (* "*") (cast_expression "(double *)(iVar12 + *(int *)(iVar7 + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + *(int *)(iVar7 + 8) * 8)" (( "(") (binary_expression "iVar12 + *(int *)(iVar7 + 8) * 8" (identifier "iVar12") (+ "+") (binary_expression "*(int *)(iVar7 + 8) * 8" (pointer_expression "*(int *)(iVar7 + 8)" (* "*") (cast_expression "(int *)(iVar7 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" (identifier "uVar24") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }" (if "if") (parenthesized_expression "(0.0 < dVar2)" (( "(") (binary_expression "0.0 < dVar2" (number_literal "0.0") (< "<") (identifier "dVar2")) () ")")) (compound_statement "{\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }" ({ "{") (expression_statement "dVar2 = dVar2 / (double)DAT_002e814c;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002e814c" (identifier "dVar2") (= "=") (binary_expression "dVar2 / (double)DAT_002e814c" (identifier "dVar2") (/ "/") (cast_expression "(double)DAT_002e814c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e814c")))) (; ";")) (if_statement "if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" (if "if") (parenthesized_expression "((double)DAT_002e8150 <= dVar2)" (( "(") (binary_expression "(double)DAT_002e8150 <= dVar2" (cast_expression "(double)DAT_002e8150" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e8150")) (<= "<=") (identifier "dVar2")) () ")")) (compound_statement "{\n                        uVar24 = 0xff;\n                      }" ({ "{") (expression_statement "uVar24 = 0xff;" (assignment_expression "uVar24 = 0xff" (identifier "uVar24") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" (else "else") (compound_statement "{\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" ({ "{") (expression_statement "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" (identifier "uVar24") (= "=") (cast_expression "(undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (cast_expression "(short)ROUND(dVar2 + (double)DAT_002df2b8)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" (identifier "ROUND") (argument_list "(dVar2 + (double)DAT_002df2b8)" (( "(") (binary_expression "dVar2 + (double)DAT_002df2b8" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_002df2b8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df2b8"))) () ")")))))) (; ";")) (} "}")))) (} "}"))) (expression_statement "local_8c[iVar23] = uVar24;" (assignment_expression "local_8c[iVar23] = uVar24" (subscript_expression "local_8c[iVar23]" (identifier "local_8c") ([ "[") (identifier "iVar23") (] "]")) (= "=") (identifier "uVar24")) (; ";")) (expression_statement "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);" (assignment_expression "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8)" (* "*") (cast_expression "(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + *(int *)(iVar7 + 0x14) * 8)" (( "(") (binary_expression "iVar12 + *(int *)(iVar7 + 0x14) * 8" (identifier "iVar12") (+ "+") (binary_expression "*(int *)(iVar7 + 0x14) * 8" (pointer_expression "*(int *)(iVar7 + 0x14)" (* "*") (cast_expression "(int *)(iVar7 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x14)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" (identifier "uVar24") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }" (if "if") (parenthesized_expression "(0.0 < dVar2)" (( "(") (binary_expression "0.0 < dVar2" (number_literal "0.0") (< "<") (identifier "dVar2")) () ")")) (compound_statement "{\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }" ({ "{") (expression_statement "dVar2 = dVar2 / (double)DAT_002e814c;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002e814c" (identifier "dVar2") (= "=") (binary_expression "dVar2 / (double)DAT_002e814c" (identifier "dVar2") (/ "/") (cast_expression "(double)DAT_002e814c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e814c")))) (; ";")) (if_statement "if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" (if "if") (parenthesized_expression "((double)DAT_002e8150 <= dVar2)" (( "(") (binary_expression "(double)DAT_002e8150 <= dVar2" (cast_expression "(double)DAT_002e8150" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e8150")) (<= "<=") (identifier "dVar2")) () ")")) (compound_statement "{\n                        uVar24 = 0xff;\n                      }" ({ "{") (expression_statement "uVar24 = 0xff;" (assignment_expression "uVar24 = 0xff" (identifier "uVar24") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" (else "else") (compound_statement "{\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" ({ "{") (expression_statement "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" (identifier "uVar24") (= "=") (cast_expression "(undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (cast_expression "(short)ROUND(dVar2 + (double)DAT_002df2b8)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" (identifier "ROUND") (argument_list "(dVar2 + (double)DAT_002df2b8)" (( "(") (binary_expression "dVar2 + (double)DAT_002df2b8" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_002df2b8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df2b8"))) () ")")))))) (; ";")) (} "}")))) (} "}"))) (expression_statement "local_9c[iVar23] = uVar24;" (assignment_expression "local_9c[iVar23] = uVar24" (subscript_expression "local_9c[iVar23]" (identifier "local_9c") ([ "[") (identifier "iVar23") (] "]")) (= "=") (identifier "uVar24")) (; ";")) (expression_statement "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);" (assignment_expression "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8)" (* "*") (cast_expression "(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + *(int *)(iVar7 + 0x20) * 8)" (( "(") (binary_expression "iVar12 + *(int *)(iVar7 + 0x20) * 8" (identifier "iVar12") (+ "+") (binary_expression "*(int *)(iVar7 + 0x20) * 8" (pointer_expression "*(int *)(iVar7 + 0x20)" (* "*") (cast_expression "(int *)(iVar7 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x20)" (( "(") (binary_expression "iVar7 + 0x20" (identifier "iVar7") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" (identifier "uVar24") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0.0 < dVar2) {\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }" (if "if") (parenthesized_expression "(0.0 < dVar2)" (( "(") (binary_expression "0.0 < dVar2" (number_literal "0.0") (< "<") (identifier "dVar2")) () ")")) (compound_statement "{\n                      dVar2 = dVar2 / (double)DAT_002e814c;\n                      if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }\n                    }" ({ "{") (expression_statement "dVar2 = dVar2 / (double)DAT_002e814c;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002e814c" (identifier "dVar2") (= "=") (binary_expression "dVar2 / (double)DAT_002e814c" (identifier "dVar2") (/ "/") (cast_expression "(double)DAT_002e814c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e814c")))) (; ";")) (if_statement "if ((double)DAT_002e8150 <= dVar2) {\n                        uVar24 = 0xff;\n                      }\n                      else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" (if "if") (parenthesized_expression "((double)DAT_002e8150 <= dVar2)" (( "(") (binary_expression "(double)DAT_002e8150 <= dVar2" (cast_expression "(double)DAT_002e8150" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e8150")) (<= "<=") (identifier "dVar2")) () ")")) (compound_statement "{\n                        uVar24 = 0xff;\n                      }" ({ "{") (expression_statement "uVar24 = 0xff;" (assignment_expression "uVar24 = 0xff" (identifier "uVar24") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" (else "else") (compound_statement "{\n                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                      }" ({ "{") (expression_statement "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" (identifier "uVar24") (= "=") (cast_expression "(undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (cast_expression "(short)ROUND(dVar2 + (double)DAT_002df2b8)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" (identifier "ROUND") (argument_list "(dVar2 + (double)DAT_002df2b8)" (( "(") (binary_expression "dVar2 + (double)DAT_002df2b8" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_002df2b8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df2b8"))) () ")")))))) (; ";")) (} "}")))) (} "}"))) (expression_statement "local_90[iVar23] = uVar24;" (assignment_expression "local_90[iVar23] = uVar24" (subscript_expression "local_90[iVar23]" (identifier "local_90") ([ "[") (identifier "iVar23") (] "]")) (= "=") (identifier "uVar24")) (; ";")) (expression_statement "local_a4 = puVar21;" (assignment_expression "local_a4 = puVar21" (identifier "local_a4") (= "=") (identifier "puVar21")) (; ";")) (if_statement "if (iVar18 != 0) {\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }" (if "if") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      local_a4 = puVar21 + 1;\n                      uVar24 = 0xff;\n                      if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }\n                      *puVar21 = uVar24;\n                    }" ({ "{") (expression_statement "local_a4 = puVar21 + 1;" (assignment_expression "local_a4 = puVar21 + 1" (identifier "local_a4") (= "=") (binary_expression "puVar21 + 1" (identifier "puVar21") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar24 = 0xff;" (assignment_expression "uVar24 = 0xff" (identifier "uVar24") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (*(int *)(iVar7 + 0x34) != 0) {\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar7 + 0x34) != 0" (pointer_expression "*(int *)(iVar7 + 0x34)" (* "*") (cast_expression "(int *)(iVar7 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x34)" (( "(") (binary_expression "iVar7 + 0x34" (identifier "iVar7") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);\n                        uVar24 = 0;\n                        if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                      }" ({ "{") (expression_statement "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);" (assignment_expression "dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8)" (* "*") (cast_expression "(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + *(int *)(iVar7 + 0x38) * 8)" (( "(") (binary_expression "iVar12 + *(int *)(iVar7 + 0x38) * 8" (identifier "iVar12") (+ "+") (binary_expression "*(int *)(iVar7 + 0x38) * 8" (pointer_expression "*(int *)(iVar7 + 0x38)" (* "*") (cast_expression "(int *)(iVar7 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x38)" (( "(") (binary_expression "iVar7 + 0x38" (identifier "iVar7") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" (identifier "uVar24") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0.0 < dVar2) {\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" (if "if") (parenthesized_expression "(0.0 < dVar2)" (( "(") (binary_expression "0.0 < dVar2" (number_literal "0.0") (< "<") (identifier "dVar2")) () ")")) (compound_statement "{\n                          dVar2 = dVar2 / (double)DAT_002e814c;\n                          if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" ({ "{") (expression_statement "dVar2 = dVar2 / (double)DAT_002e814c;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002e814c" (identifier "dVar2") (= "=") (binary_expression "dVar2 / (double)DAT_002e814c" (identifier "dVar2") (/ "/") (cast_expression "(double)DAT_002e814c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e814c")))) (; ";")) (if_statement "if ((double)DAT_002e8150 <= dVar2) {\n                            uVar24 = 0xff;\n                          }\n                          else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" (if "if") (parenthesized_expression "((double)DAT_002e8150 <= dVar2)" (( "(") (binary_expression "(double)DAT_002e8150 <= dVar2" (cast_expression "(double)DAT_002e8150" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e8150")) (<= "<=") (identifier "dVar2")) () ")")) (compound_statement "{\n                            uVar24 = 0xff;\n                          }" ({ "{") (expression_statement "uVar24 = 0xff;" (assignment_expression "uVar24 = 0xff" (identifier "uVar24") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" (else "else") (compound_statement "{\n                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" ({ "{") (expression_statement "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" (identifier "uVar24") (= "=") (cast_expression "(undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (cast_expression "(short)ROUND(dVar2 + (double)DAT_002df2b8)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(dVar2 + (double)DAT_002df2b8)" (identifier "ROUND") (argument_list "(dVar2 + (double)DAT_002df2b8)" (( "(") (binary_expression "dVar2 + (double)DAT_002df2b8" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_002df2b8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df2b8"))) () ")")))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "*puVar21 = uVar24;" (assignment_expression "*puVar21 = uVar24" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (identifier "uVar24")) (; ";")) (} "}"))) (expression_statement "iVar12 = iVar12 + iVar6 * 8;" (assignment_expression "iVar12 = iVar12 + iVar6 * 8" (identifier "iVar12") (= "=") (binary_expression "iVar12 + iVar6 * 8" (identifier "iVar12") (+ "+") (binary_expression "iVar6 * 8" (identifier "iVar6") (* "*") (number_literal "8")))) (; ";")) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" (identifier "iVar23") (= "=") (binary_expression "iVar23 + 1" (identifier "iVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar21 = local_a4;" (assignment_expression "puVar21 = local_a4" (identifier "puVar21") (= "=") (identifier "local_a4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar17 != iVar23)" (( "(") (binary_expression "iVar17 != iVar23" (identifier "iVar17") (!= "!=") (identifier "iVar23")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar12 = FUN_00277f10(__s);" (assignment_expression "iVar12 = FUN_00277f10(__s)" (identifier "iVar12") (= "=") (call_expression "FUN_00277f10(__s)" (identifier "FUN_00277f10") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (expression_statement "uVar14 = uVar14 + iVar12;" (assignment_expression "uVar14 = uVar14 + iVar12" (identifier "uVar14") (= "=") (binary_expression "uVar14 + iVar12" (identifier "uVar14") (+ "+") (identifier "iVar12"))) (; ";")) (if_statement "if ((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)) break;" (if "if") (parenthesized_expression "((param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0))" (( "(") (binary_expression "(param_2[0xccf] == 0) &&\n                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)" (parenthesized_expression "(param_2[0xccf] == 0)" (( "(") (binary_expression "param_2[0xccf] == 0" (subscript_expression "param_2[0xccf]" (identifier "param_2") ([ "[") (number_literal "0xccf") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0)" (( "(") (comma_expression "iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),\n                   iVar12 == 0" (assignment_expression "iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0)" (identifier "iVar12") (= "=") (call_expression "SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0)" (identifier "SetImageProgress") (argument_list "(param_2,"Save/Image",local_5c,local_58,param_2[7],0)" (( "(") (identifier "param_2") (, ",") (string_literal ""Save/Image"" (" """) (string_content "Save/Image") (" """)) (, ",") (identifier "local_5c") (, ",") (identifier "local_58") (, ",") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" (identifier "iVar20") (= "=") (binary_expression "iVar20 + 1" (identifier "iVar20") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar28 = 0xfffffffe < local_5c;" (assignment_expression "bVar28 = 0xfffffffe < local_5c" (identifier "bVar28") (= "=") (binary_expression "0xfffffffe < local_5c" (number_literal "0xfffffffe") (< "<") (identifier "local_5c"))) (; ";")) (expression_statement "local_5c = local_5c + 1;" (assignment_expression "local_5c = local_5c + 1" (identifier "local_5c") (= "=") (binary_expression "local_5c + 1" (identifier "local_5c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_58 = local_58 + (uint)bVar28;" (assignment_expression "local_58 = local_58 + (uint)bVar28" (identifier "local_58") (= "=") (binary_expression "local_58 + (uint)bVar28" (identifier "local_58") (+ "+") (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")))) (; ";")) (if_statement "if (param_2[7] <= iVar20) break;" (if "if") (parenthesized_expression "(param_2[7] <= iVar20)" (( "(") (binary_expression "param_2[7] <= iVar20" (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) (<= "<=") (identifier "iVar20")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = param_2[6];" (assignment_expression "iVar12 = param_2[6]" (identifier "iVar12") (= "=") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (; ";")) (} "}"))) (labeled_statement "LAB_002792ae:\n              if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }" (statement_identifier "LAB_002792ae") (: ":") (if_statement "if ((uVar14 & 1) != 0) {\n                WriteBlobByte(param_2,0);\n              }" (if "if") (parenthesized_expression "((uVar14 & 1) != 0)" (( "(") (binary_expression "(uVar14 & 1) != 0" (parenthesized_expression "(uVar14 & 1)" (( "(") (binary_expression "uVar14 & 1" (identifier "uVar14") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                WriteBlobByte(param_2,0);\n              }" ({ "{") (expression_statement "WriteBlobByte(param_2,0);" (call_expression "WriteBlobByte(param_2,0)" (identifier "WriteBlobByte") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")))) (} "}"))) (} "}")))) (} "}")))) (expression_statement "WriteBlobMSBShort(param_2,0xff);" (call_expression "WriteBlobMSBShort(param_2,0xff)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,0xff)" (( "(") (identifier "param_2") (, ",") (number_literal "0xff") () ")"))) (; ";")) (expression_statement "TellBlob(param_2);" (call_expression "TellBlob(param_2)" (identifier "TellBlob") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (expression_statement "uVar11 = SeekBlob(param_2,0x200,0,0);" (assignment_expression "uVar11 = SeekBlob(param_2,0x200,0,0)" (identifier "uVar11") (= "=") (call_expression "SeekBlob(param_2,0x200,0,0)" (identifier "SeekBlob") (argument_list "(param_2,0x200,0,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0x200") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,uVar11);" (call_expression "WriteBlobMSBShort(param_2,uVar11)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar11)" (( "(") (identifier "param_2") (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "RelinquishMagickMemory(__s_00);" (call_expression "RelinquishMagickMemory(__s_00)" (identifier "RelinquishMagickMemory") (argument_list "(__s_00)" (( "(") (identifier "__s_00") () ")"))) (; ";")) (expression_statement "RelinquishMagickMemory(__s);" (call_expression "RelinquishMagickMemory(__s)" (identifier "RelinquishMagickMemory") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))) (; ";")) (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" (identifier "RelinquishMagickMemory") (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" (identifier "CloseBlob") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" (identifier "iVar12") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0027872e;" (goto "goto") (statement_identifier "LAB_0027872e") (; ";")) (} "}"))) (labeled_statement "LAB_0027924d:\n      RelinquishMagickMemory(__s);" (statement_identifier "LAB_0027924d") (: ":") (expression_statement "RelinquishMagickMemory(__s);" (call_expression "RelinquishMagickMemory(__s)" (identifier "RelinquishMagickMemory") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))) (; ";"))) (} "}")))) (if_statement "if (puVar13 != (undefined4 *)0x0) {\n      RelinquishMagickMemory(puVar13);\n    }" (if "if") (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 != (undefined4 *)0x0" (identifier "puVar13") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      RelinquishMagickMemory(puVar13);\n    }" ({ "{") (expression_statement "RelinquishMagickMemory(puVar13);" (call_expression "RelinquishMagickMemory(puVar13)" (identifier "RelinquishMagickMemory") (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (} "}"))) (expression_statement "ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6);" (call_expression "ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6)" (identifier "ThrowMagickException") (argument_list "(param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",\n               param_2 + 0xc6)" (( "(") (identifier "param_3") (, ",") (string_literal ""coders/pict.c"" (" """) (string_content "coders/pict.c") (" """)) (, ",") (string_literal ""WritePICTImage"" (" """) (string_content "WritePICTImage") (" """)) (, ",") (number_literal "0x710") (, ",") (number_literal "400") (, ",") (string_literal ""MemoryAllocationFailed"" (" """) (string_content "MemoryAllocationFailed") (" """)) (, ",") (string_literal ""`%s\'"" (" """) (string_content "`%s") (escape_sequence "\'") (" """)) (, ",") (binary_expression "param_2 + 0xc6" (identifier "param_2") (+ "+") (number_literal "0xc6")) () ")"))) (; ";")) (expression_statement "piVar5 = (int *)param_1[3];" (assignment_expression "piVar5 = (int *)param_1[3]" (identifier "piVar5") (= "=") (cast_expression "(int *)param_1[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "piVar9 = param_2;" (assignment_expression "piVar9 = param_2" (identifier "piVar9") (= "=") (identifier "param_2")) (; ";")) (while_statement "while (piVar8 = piVar9, piVar5 != (int *)0x0) {\n      piVar5 = (int *)piVar8[0xccf];\n      piVar9 = piVar5;\n      param_2 = piVar8;\n    }" (while "while") (parenthesized_expression "(piVar8 = piVar9, piVar5 != (int *)0x0)" (( "(") (comma_expression "piVar8 = piVar9, piVar5 != (int *)0x0" (assignment_expression "piVar8 = piVar9" (identifier "piVar8") (= "=") (identifier "piVar9")) (, ",") (binary_expression "piVar5 != (int *)0x0" (identifier "piVar5") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n      piVar5 = (int *)piVar8[0xccf];\n      piVar9 = piVar5;\n      param_2 = piVar8;\n    }" ({ "{") (expression_statement "piVar5 = (int *)piVar8[0xccf];" (assignment_expression "piVar5 = (int *)piVar8[0xccf]" (identifier "piVar5") (= "=") (cast_expression "(int *)piVar8[0xccf]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0xccf]" (identifier "piVar8") ([ "[") (number_literal "0xccf") (] "]")))) (; ";")) (expression_statement "piVar9 = piVar5;" (assignment_expression "piVar9 = piVar5" (identifier "piVar9") (= "=") (identifier "piVar5")) (; ";")) (expression_statement "param_2 = piVar8;" (assignment_expression "param_2 = piVar8" (identifier "param_2") (= "=") (identifier "piVar8")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6);\n    if (param_1[3] != 0) {\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }\n  }" (else "else") (compound_statement "{\n    ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6);\n    if (param_1[3] != 0) {\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }\n  }" ({ "{") (expression_statement "ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6);" (call_expression "ThrowMagickException\n              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6)" (identifier "ThrowMagickException") (argument_list "(param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",\n               "`%s\'",param_2 + 0xc6)" (( "(") (identifier "param_3") (, ",") (string_literal ""coders/pict.c"" (" """) (string_content "coders/pict.c") (" """)) (, ",") (string_literal ""WritePICTImage"" (" """) (string_content "WritePICTImage") (" """)) (, ",") (number_literal "0x6bc") (, ",") (number_literal "0x1d1") (, ",") (string_literal ""WidthOrHeightExceedsLimit"" (" """) (string_content "WidthOrHeightExceedsLimit") (" """)) (, ",") (string_literal ""`%s\'"" (" """) (string_content "`%s") (escape_sequence "\'") (" """)) (, ",") (binary_expression "param_2 + 0xc6" (identifier "param_2") (+ "+") (number_literal "0xc6")) () ")"))) (; ";")) (if_statement "if (param_1[3] != 0) {\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }" (if "if") (parenthesized_expression "(param_1[3] != 0)" (( "(") (binary_expression "param_1[3] != 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      piVar5 = (int *)param_2[0xccf];\n      while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }\n    }" ({ "{") (expression_statement "piVar5 = (int *)param_2[0xccf];" (assignment_expression "piVar5 = (int *)param_2[0xccf]" (identifier "piVar5") (= "=") (cast_expression "(int *)param_2[0xccf]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[0xccf]" (identifier "param_2") ([ "[") (number_literal "0xccf") (] "]")))) (; ";")) (while_statement "while (piVar9 = piVar5, piVar9 != (int *)0x0) {\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }" (while "while") (parenthesized_expression "(piVar9 = piVar5, piVar9 != (int *)0x0)" (( "(") (comma_expression "piVar9 = piVar5, piVar9 != (int *)0x0" (assignment_expression "piVar9 = piVar5" (identifier "piVar9") (= "=") (identifier "piVar5")) (, ",") (binary_expression "piVar9 != (int *)0x0" (identifier "piVar9") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n        param_2 = piVar9;\n        piVar5 = (int *)piVar9[0xccf];\n      }" ({ "{") (expression_statement "param_2 = piVar9;" (assignment_expression "param_2 = piVar9" (identifier "param_2") (= "=") (identifier "piVar9")) (; ";")) (expression_statement "piVar5 = (int *)piVar9[0xccf];" (assignment_expression "piVar5 = (int *)piVar9[0xccf]" (identifier "piVar5") (= "=") (cast_expression "(int *)piVar9[0xccf]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar9[0xccf]" (identifier "piVar9") ([ "[") (number_literal "0xccf") (] "]")))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (labeled_statement "LAB_00278720:\n  CloseBlob(param_2);" (statement_identifier "LAB_00278720") (: ":") (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" (identifier "CloseBlob") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";"))) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0027872e:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar12;\n  }" (statement_identifier "LAB_0027872e") (: ":") (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar12;\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 iVar12;\n  }" ({ "{") (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}")))) (expression_statement "FUN_002decd0();" (call_expression "FUN_002decd0()" (identifier "FUN_002decd0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

type_1 function_1(type_2 *var_2,type_3 *var_4,type_4 *var_7)

{
  type_5 var_23;
  double *pdVar2;
  double var_11;
  double var_13;
  double var_55;
  type_6 *var_25;
  size_t var_60;
  type_7 var_69;
  type_8 *pPVar9;
  type_9 value;
  type_9 value_00;
  type_9 uVar10;
  type_1 var_9;
  type_4 *var_27;
  type_3 *var_28;
  type_10 *var_29;
  type_11 *var_38;
  size_t var_19;
  type_4 *pEVar15;
  type_12 *var_58;
  type_3 *var_43;
  type_2 *image_info_00;
  type_4 *var_49;
  int var_32;
  type_13 *extraout_ECX;
  type_10 *var_59;
  type_4 *extraout_ECX_00;
  type_14 var_17;
  type_10 *var_61;
  size_t var_70;
  type_10 uVar23;
  int var_56;
  int var_1;
  bool bVar25;
  type_15 bVar26;
  type_16 MVar27;
  type_10 uVar28;
  type_10 uVar29;
  type_10 uVar30;
  type_17 uVar31;
  type_17 uVar32;
  type_4 *pixels;
  type_13 *pixels_00;
  type_10 *local_a4;
  size_t var_21;
  type_10 *var_67;
  int var_68;
  size_t var_22;
  type_10 *local_90;
  type_10 *local_8c;
  type_9 local_88;
  type_9 local_84;
  type_5 var_71;
  int var_72;
  size_t var_51;
  int var_75;
  type_18 uStack_14;
  
  bVar26 = 0;
  uStack_14 = 0x278539;
  var_75 = *(int *)(var_1 + 0x14);
  if (var_2 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");
  }
  if (var_2->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,
                  "WritePICTImage");
  }
  if (var_4 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");
  }
  if (var_4->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");
  }
  if (var_4->debug != var_5) {
    var_6(TraceEvent,"coders/pict.c","WritePICTImage",0x6ba,"%s",(char)var_4 + '\x18');
  }
  if ((var_4->columns < 0x10000) && (var_4->rows < 0x10000)) {
    if (var_7 == (type_4 *)0x0) {
                    /* WARNING: Subroutine does not return */
      var_3("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");
    }
    if (var_7->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
      var_3("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,
                    "WritePICTImage");
    }
    pixels = var_7;
    var_9 = var_8(var_2,var_4,WriteBinaryBlobMode,var_7);
    if (var_9 == var_5) goto LAB_0027872e;
    var_10(var_4,sRGBColorspace,var_7);
    var_19 = var_4->columns;
    var_11 = (var_4->resolution).x;
    if ((var_11 <= var_12) || (var_13 = (var_4->resolution).y, var_13 <= var_12)) {
      var_13 = 0.0;
      var_11 = 0.0;
    }
    else if (var_4->units == var_14) {
      var_11 = var_11 * var_15;
      var_13 = var_15 * var_13;
    }
    var_17 = var_4->storage_class;
    if ((var_2->compression == var_16) || (var_17 == var_18)) {
      var_22 = var_19 << 2;
      if (var_4->alpha_trait == var_20) {
        var_67._0_2_ = 3;
        var_21 = var_19 * 3;
      }
      else {
        var_67._0_2_ = 4;
        var_21 = var_22;
      }
      local_90._0_2_ = 0x40;
      var_17 = var_18;
      local_8c._0_2_ = 0x20;
      local_88 = 0x10;
      local_84 = 4;
    }
    else {
      local_90._0_2_ = 0;
      local_8c._0_2_ = 8;
      local_88 = 0;
      local_84 = 0;
      var_67._0_2_ = 1;
      var_21 = var_19;
      var_22 = var_19;
    }
    if ((0x7ffe < var_21 - 1) || (var_23 = var_22 + 0x100, 0x7ffe < var_23)) {
      var_24
                (var_7,"coders/pict.c","WritePICTImage",0x700,ImageError,
                 "WidthOrHeightExceedsLimit","`%s\'",0x2e,var_4->filename);
      var_25 = (type_6 *)var_2->adjoin;
      var_28 = var_4;
      while (var_43 = var_28, var_25 != (type_6 *)0x0) {
        var_25 = var_43->previous;
        var_28 = var_25;
        var_4 = var_43;
      }
      goto LAB_00278720;
    }
    var_60 = var_4->rows;
    var_27 = (type_4 *)var_26(0x200,1);
    var_28 = (type_3 *)var_26(var_23,1);
    var_29 = (type_10 *)var_26(var_22,1);
    if ((var_27 == (type_4 *)0x0) || (var_28 == (type_3 *)0x0)) {
      if (var_29 != (type_10 *)0x0) {
        var_30(var_29);
      }
      if (var_28 != (type_3 *)0x0) goto LAB_0027924d;
    }
    else {
      if (var_29 != (type_10 *)0x0) {
        var_31(var_29,0,var_22);
        var_31(var_28,0,var_23);
        pEVar15 = var_27;
        for (var_32 = 0x80; var_32 != 0; var_32 = var_32 + -1) {
          pEVar15->severity = UndefinedException;
          pEVar15 = (type_4 *)((int)pEVar15 + (type_5)bVar26 * -8 + 4);
        }
        pEVar15 = var_27;
        var_33(var_4,0x200,var_27);
        var_34(var_4,0);
        var_34(var_4,0);
        var_34(var_4,0);
        value_00 = (type_9)var_60;
        var_34(var_4,value_00);
        value = (type_9)var_19;
        var_34(var_4,value);
        var_34(var_4,0x11);
        var_34(var_4,0x2ff);
        var_34(var_4,0xc00);
        var_35(var_4,0xfffe0000);
        var_34(var_4,(type_9)(int)var_36(var_11));
        var_34(var_4,0);
        var_34(var_4,(type_9)(int)var_36(var_13));
        var_34(var_4,0);
        var_34(var_4,0);
        var_34(var_4,0);
        var_34(var_4,value_00);
        var_34(var_4,value);
        var_35(var_4,0);
        var_38 = var_37(var_4,"iptc");
        if (var_38 != (type_11 *)0x0) {
          var_34(var_4,0xa1);
          var_34(var_4,0x1f2);
          var_19 = var_39(var_38);
          var_34(var_4,(short)var_19 + 4);
          var_40(var_4,"8BIM");
          pEVar15 = (type_4 *)var_41(var_38);
          var_19 = var_39(var_38);
          var_33(var_4,var_19,pEVar15);
        }
        var_38 = var_37(var_4,"icc");
        if (var_38 != (type_11 *)0x0) {
          var_34(var_4,0xa1);
          var_34(var_4,0xe0);
          var_19 = var_39(var_38);
          var_34(var_4,(short)var_19 + 4);
          var_35(var_4,0);
          pEVar15 = (type_4 *)var_41(var_38);
          var_19 = var_39(var_38);
          var_33(var_4,var_19,pEVar15);
          var_34(var_4,0xa1);
          var_34(var_4,0xe0);
          var_34(var_4,4);
          var_35(var_4,2);
        }
        var_34(var_4,1);
        var_34(var_4,10);
        var_34(var_4,0);
        var_34(var_4,0);
        var_34(var_4,value_00);
        var_34(var_4,value);
        if (var_2->compression == var_16) {
          var_43 = var_42(var_4,0,0,MagickTrue,var_7);
          if (var_43 == (type_3 *)0x0) {
            var_44(var_4);
          }
          else {
            image_info_00 = var_45(var_2);
            var_46(image_info_00->magick,"JPEG",0x1000);
            var_51 = 0;
            pixels = var_7;
            var_49 = (type_4 *)var_47(image_info_00,var_43,&var_51,var_7);
            var_48(image_info_00);
            if (var_49 != (type_4 *)0x0) {
              var_50(var_43);
              var_34(var_4,0x8200);
              var_35(var_4,var_51 + 0x9a);
              var_34(var_4,0);
              var_35(var_4,0x10000);
              var_35(var_4,0);
              var_35(var_4,0);
              var_35(var_4,0);
              var_35(var_4,0x10000);
              var_35(var_4,0);
              var_35(var_4,0);
              var_35(var_4,0);
              var_35(var_4,0x40000000);
              var_35(var_4,0);
              var_35(var_4,0);
              var_35(var_4,0);
              var_35(var_4,0x400000);
              var_34(var_4,0);
              var_34(var_4,(type_9)var_4->rows);
              var_34(var_4,(type_9)var_4->columns);
              var_34(var_4,0);
              var_34(var_4,0x300);
              var_34(var_4,0);
              var_35(var_4,0);
              var_35(var_4,0x566a70);
              var_35(var_4,0x65670000);
              var_35(var_4,0);
              var_35(var_4,1);
              var_35(var_4,0x16170);
              var_35(var_4,0x706c0000);
              var_35(var_4,0);
              var_34(var_4,0x300);
              var_34(var_4,(type_9)var_4->columns);
              var_34(var_4,(type_9)var_4->rows);
              var_34(var_4,(type_9)(int)var_36(var_11));
              var_34(var_4,0);
              var_34(var_4,(type_9)(int)var_36(var_13));
              var_34(var_4,0);
              var_35(var_4,var_51);
              var_34(var_4,1);
              var_35(var_4,0xb466f74);
              var_35(var_4,0x6f202d20);
              var_35(var_4,0x4a504547);
              var_35(var_4,0);
              var_35(var_4,0);
              var_35(var_4,0);
              var_35(var_4,0);
              var_35(var_4,0);
              var_35(var_4,0x18ffff);
              pEVar15 = var_49;
              var_33(var_4,var_51,var_49);
              if ((var_51 & 1) != 0) {
                pEVar15 = extraout_ECX_00;
                pixels = extraout_ECX_00;
                var_52(var_4,'\0');
              }
              var_30(var_49);
              goto LAB_00278cac;
            }
          }
          var_9 = var_5;
          goto LAB_0027872e;
        }
LAB_00278cac:
        if (var_17 == var_53) {
          var_34(var_4,0x98);
        }
        else {
          var_34(var_4,0x9a);
          var_35(var_4,0xff);
        }
        var_34(var_4,(type_9)var_22 | 0x8000);
        var_34(var_4,0);
        var_34(var_4,0);
        var_34(var_4,value_00);
        var_34(var_4,value);
        var_34(var_4,0);
        var_34(var_4,local_84);
        var_35(var_4,0);
        var_55 = (double)var_54;
        var_34(var_4,(type_9)(int)var_36((float)var_11 + var_54));
        var_34(var_4,0);
        var_34(var_4,(type_9)(int)var_36(var_13 + var_55));
        var_34(var_4,0);
        var_34(var_4,local_88);
        var_34(var_4,(type_9)local_8c);
        var_34(var_4,(type_9)var_67);
        var_34(var_4,8);
        var_35(var_4,0);
        var_35(var_4,0);
        var_35(var_4,0);
        uVar28 = (type_10)((type_5)var_7 >> 8);
        uVar31 = (type_17)((type_5)var_7 >> 0x10);
        if (var_17 == var_53) {
          var_35(var_4,0);
          var_34(var_4,0);
          var_34(var_4,(short)var_4->colors - 1);
          if (0 < (int)var_4->colors) {
            var_32 = 0;
            var_56 = 0;
            do {
              var_34(var_4,(type_9)var_56);
              var_11 = *(double *)((int)&var_4->colormap->red + var_32);
              uVar10 = 0;
              if ((0.0 < var_11) && (uVar10 = 0xffff, var_11 < (double)DAT_002df8a8)) {
                uVar10 = (type_9)(int)var_36(var_11 + (double)var_54);
              }
              var_34(var_4,uVar10);
              var_11 = *(double *)((int)&var_4->colormap->green + var_32);
              uVar10 = 0;
              if ((0.0 < var_11) && (uVar10 = 0xffff, var_11 < (double)DAT_002df8a8)) {
                uVar10 = (type_9)(int)var_36(var_11 + (double)var_54);
              }
              var_34(var_4,uVar10);
              var_11 = *(double *)((int)&var_4->colormap->blue + var_32);
              uVar10 = 0;
              if ((0.0 < var_11) && (uVar10 = 0xffff, var_11 < (double)DAT_002df8a8)) {
                uVar10 = (type_9)(int)var_36(var_11 + (double)var_54);
              }
              var_56 = var_56 + 1;
              var_32 = var_32 + 0x50;
              var_34(var_4,uVar10);
            } while (var_56 < (int)var_4->colors);
          }
          var_34(var_4,0);
          var_34(var_4,0);
          var_34(var_4,value_00);
          var_34(var_4,value);
          var_34(var_4,0);
          var_34(var_4,0);
          var_34(var_4,value_00);
          var_34(var_4,value);
          var_34(var_4,(type_9)local_90);
          var_67 = (type_10 *)0x0;
          var_68 = 0;
          var_21 = 0;
          var_23 = 0;
          if (0 < (int)var_4->rows) {
            do {
              uVar29 = (char)var_7;
              uVar30 = uVar28;
              uVar32 = uVar31;
              var_58 = var_57(var_4,0,var_21,var_4->columns,1,var_7);
              if (var_58 == (type_12 *)0x0) break;
              var_19 = var_4->columns;
              if (0 < (int)var_19) {
                var_60 = var_4->number_channels;
                pPVar9 = var_4->channel_map;
                var_59 = var_29;
                do {
                  while (pPVar9[5].traits != var_20) {
                    var_61 = var_59 + 1;
                    pdVar2 = var_58 + pPVar9[5].offset;
                    var_58 = var_58 + var_60;
                    *var_59 = (char)(short)var_36(*pdVar2);
                    var_59 = var_61;
                    if (var_61 == var_29 + var_19) goto LAB_00279a01;
                  }
                  *var_59 = 0;
                  var_59 = var_59 + 1;
                  var_58 = var_58 + var_60;
                } while (var_59 != var_29 + var_19);
              }
LAB_00279a01:
              var_19 = var_62(var_28,(type_13 *)var_63(uVar32,var_64(uVar30,uVar29)),
                                   (size_t)pEVar15,(type_13 *)pixels);
              var_23 = var_23 + var_19;
              if ((var_4->previous == (type_6 *)0x0) &&
                 (var_9 = var_65(var_4,"Save/Image",var_66(var_68,var_67),
                                            (type_19)var_4->rows), var_9 == var_5)) break;
              var_21 = var_21 + 1;
              bVar25 = 0xfffffffe < var_67;
              var_67 = (type_10 *)((int)var_67 + 1);
              var_68 = var_68 + (type_5)bVar25;
            } while ((int)var_21 < (int)var_4->rows);
            goto LAB_002792ae;
          }
        }
        else {
          var_34(var_4,0);
          var_34(var_4,0);
          var_34(var_4,value_00);
          var_34(var_4,value);
          var_34(var_4,0);
          var_34(var_4,0);
          var_34(var_4,value_00);
          var_34(var_4,value);
          var_34(var_4,(type_9)local_90);
          if (var_2->compression == var_16) {
            uVar28 = 0;
            uVar29 = 0;
            uVar31 = 0;
            pixels_00 = extraout_ECX;
            var_31(var_29,0,var_22);
            if (0 < (int)var_4->rows) {
              var_32 = 0;
              var_23 = 0;
              do {
                var_32 = var_32 + 1;
                var_19 = var_62(var_28,(type_13 *)var_63(uVar31,var_64(uVar29,uVar28)),
                                     var_22,pixels_00);
                var_23 = var_23 + var_19;
              } while (var_32 < (int)var_4->rows);
              goto LAB_002792ae;
            }
          }
          else {
            var_19 = var_4->columns;
            local_a4 = var_29 + var_19 * 3;
            if (0 < (int)var_4->rows) {
              var_71 = 0;
              var_72 = 0;
              var_32 = 0;
              var_23 = 0;
              while (uVar29 = (char)var_7, uVar30 = uVar28, uVar32 = uVar31,
                    var_58 = var_57(var_4,0,var_32,var_19,1,var_7),
                    var_58 != (type_12 *)0x0) {
                var_19 = var_4->columns;
                var_59 = var_29 + var_19;
                var_61 = var_59 + var_19;
                var_69 = var_4->alpha_trait;
                var_67 = var_59;
                local_90 = var_61;
                local_8c = var_29;
                if (var_69 != var_20) {
                  local_90 = var_61 + var_19;
                  local_a4 = var_29;
                  var_67 = var_61;
                  local_8c = var_59;
                }
                if (0 < (int)var_19) {
                  var_60 = var_4->number_channels;
                  var_70 = 0;
                  pPVar9 = var_4->channel_map;
                  var_59 = local_a4;
                  do {
                    uVar23 = 0;
                    if (0.0 < var_58[pPVar9->offset]) {
                      var_11 = var_58[pPVar9->offset] / (double)DAT_002e814c;
                      if ((double)DAT_002e8150 <= var_11) {
                        uVar23 = 0xff;
                      }
                      else {
                        uVar23 = (type_10)(short)var_36(var_11 + (double)var_54);
                      }
                    }
                    local_8c[var_70] = uVar23;
                    uVar23 = 0;
                    if (0.0 < var_58[pPVar9[1].offset]) {
                      var_11 = var_58[pPVar9[1].offset] / (double)DAT_002e814c;
                      if ((double)DAT_002e8150 <= var_11) {
                        uVar23 = 0xff;
                      }
                      else {
                        uVar23 = (type_10)(short)var_36(var_11 + (double)var_54);
                      }
                    }
                    var_67[var_70] = uVar23;
                    uVar23 = 0;
                    if (0.0 < var_58[pPVar9[2].offset]) {
                      var_11 = var_58[pPVar9[2].offset] / (double)DAT_002e814c;
                      if ((double)DAT_002e8150 <= var_11) {
                        uVar23 = 0xff;
                      }
                      else {
                        uVar23 = (type_10)(short)var_36(var_11 + (double)var_54);
                      }
                    }
                    local_90[var_70] = uVar23;
                    local_a4 = var_59;
                    if (var_69 != var_20) {
                      local_a4 = var_59 + 1;
                      uVar23 = 0xff;
                      if (pPVar9[4].traits != var_20) {
                        uVar23 = 0;
                        if (0.0 < var_58[pPVar9[4].offset]) {
                          var_11 = var_58[pPVar9[4].offset] / (double)DAT_002e814c;
                          if ((double)DAT_002e8150 <= var_11) {
                            uVar23 = 0xff;
                          }
                          else {
                            uVar23 = (type_10)(short)var_36(var_11 + (double)var_54);
                          }
                        }
                      }
                      *var_59 = uVar23;
                    }
                    var_58 = var_58 + var_60;
                    var_70 = var_70 + 1;
                    var_59 = local_a4;
                  } while (var_19 != var_70);
                }
                var_19 = var_62(var_28,(type_13 *)var_63(uVar32,var_64(uVar30,uVar29)),
                                     (size_t)pEVar15,(type_13 *)pixels);
                var_23 = var_23 + var_19;
                if ((var_4->previous == (type_6 *)0x0) &&
                   (var_9 = var_65(var_4,"Save/Image",var_66(var_72,var_71),
                                              (type_19)var_4->rows), var_9 == var_5))
                break;
                var_32 = var_32 + 1;
                bVar25 = 0xfffffffe < var_71;
                var_71 = var_71 + 1;
                var_72 = var_72 + (type_5)bVar25;
                if ((int)var_4->rows <= var_32) break;
                var_19 = var_4->columns;
              }
LAB_002792ae:
              if ((var_23 & 1) != 0) {
                var_52(var_4,'\0');
              }
            }
          }
        }
        var_34(var_4,0xff);
        var_73(var_4);
        MVar27 = var_74(var_4,0x200,0);
        var_34(var_4,(type_9)MVar27);
        var_30(var_29);
        var_30(var_28);
        var_30(var_27);
        var_44(var_4);
        var_9 = MagickTrue;
        goto LAB_0027872e;
      }
LAB_0027924d:
      var_30(var_28);
    }
    if (var_27 != (type_4 *)0x0) {
      var_30(var_27);
    }
    var_24
              (var_7,"coders/pict.c","WritePICTImage",0x710,ErrorException,
               "MemoryAllocationFailed","`%s\'",0x6e,var_4->filename);
    var_25 = (type_6 *)var_2->adjoin;
    var_28 = var_4;
    while (var_43 = var_28, var_25 != (type_6 *)0x0) {
      var_25 = var_43->previous;
      var_28 = var_25;
      var_4 = var_43;
    }
  }
  else {
    var_24
              (var_7,"coders/pict.c","WritePICTImage",0x6bc,ImageError,
               "WidthOrHeightExceedsLimit","`%s\'",0x2e,var_4->filename);
    if (var_2->adjoin != var_5) {
      var_28 = var_4->previous;
      while (var_43 = var_28, var_43 != (type_3 *)0x0) {
        var_4 = var_43;
        var_28 = var_43->previous;
      }
    }
  }
LAB_00278720:
  var_44(var_4);
  var_9 = var_5;
LAB_0027872e:
  if (var_75 == *(int *)(var_1 + 0x14)) {
    return var_9;
  }
                    /* WARNING: Subroutine does not return */
  var_76();
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (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: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (subscript_expression argument: (identifier) index: (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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) (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (number_literal) right: (identifier)))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content)) (number_literal) (number_literal) (string_literal (string_content)) (string_literal (string_content) (escape_sequence)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (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) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (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) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (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))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (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) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (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) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (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))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)) (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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 (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (field_expression argument: (identifier) field: (field_identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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 (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (while_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))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (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: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (identifier) (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier) (identifier) (number_literal) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (identifier) (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (labeled_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 (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))))))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (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) (number_literal) (number_literal) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content)) (number_literal) (number_literal) (string_literal (string_content)) (string_literal (string_content) (escape_sequence)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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 */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

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

{
  double *pdVar1;
  double dVar2;
  double dVar3;
  double dVar4;
  int *piVar5;
  int iVar6;
  int iVar7;
  int *piVar8;
  int *piVar9;
  short sVar10;
  undefined2 uVar11;
  int iVar12;
  undefined4 *puVar13;
  void *__s;
  undefined1 *__s_00;
  uint uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  int iVar17;
  int iVar18;
  uint uVar19;
  int iVar20;
  undefined4 extraout_ECX;
  undefined1 *puVar21;
  undefined4 extraout_ECX_00;
  undefined1 *puVar22;
  int iVar23;
  undefined1 uVar24;
  undefined4 *puVar25;
  uint uVar26;
  uint uVar27;
  int in_GS_OFFSET;
  bool bVar28;
  byte bVar29;
  undefined1 *local_a4;
  uint local_a0;
  undefined1 *local_9c;
  int local_98;
  size_t local_94;
  undefined1 *local_90;
  undefined1 *local_8c;
  undefined4 local_88;
  undefined4 local_84;
  uint local_5c;
  int local_58;
  uint local_24;
  int local_20;
  undefined4 uStack_14;
  
  bVar29 = 0;
  uStack_14 = 0x278539;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_1 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info != (const ImageInfo *) NULL","coders/pict.c",0x6b5,"WritePICTImage");
  }
  if (param_1[0xc7d] != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info->signature == MagickCoreSignature","coders/pict.c",0x6b6,
                  "WritePICTImage");
  }
  if (param_2 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","coders/pict.c",0x6b7,"WritePICTImage");
  }
  if (param_2[0xcd1] != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","coders/pict.c",0x6b8,"WritePICTImage");
  }
  if (param_2[0xcca] != 0) {
    LogMagickEvent(0x8000,"coders/pict.c","WritePICTImage",0x6ba,&DAT_002f75ae,param_2 + 0xc6);
  }
  if (((uint)param_2[6] < 0x10000) && ((uint)param_2[7] < 0x10000)) {
    if (param_3 == 0) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("exception != (ExceptionInfo *) NULL","coders/pict.c",0x6bd,"WritePICTImage");
    }
    if (*(int *)(param_3 + 0x1c) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("exception->signature == MagickCoreSignature","coders/pict.c",0x6be,
                    "WritePICTImage");
    }
    iVar12 = OpenBlob(param_1,param_2,4,param_3);
    if (iVar12 == 0) goto LAB_0027872e;
    TransformImageColorspace(param_2,0x17,param_3);
    uVar14 = param_2[6];
    dVar2 = *(double *)(param_2 + 0x7c);
    if ((dVar2 <= DAT_002df2d0) || (dVar3 = *(double *)(param_2 + 0x7e), dVar3 <= DAT_002df2d0)) {
      dVar3 = 0.0;
      dVar2 = 0.0;
    }
    else if (param_2[0x77] == 2) {
      dVar2 = dVar2 * _DAT_002f84b0;
      dVar3 = _DAT_002f84b0 * dVar3;
    }
    iVar12 = *param_2;
    if ((*param_1 == 0xc) || (iVar12 == 1)) {
      local_94 = uVar14 << 2;
      if (param_2[0xa5] == 0) {
        local_9c._0_2_ = 3;
        local_a0 = uVar14 * 3;
      }
      else {
        local_9c._0_2_ = 4;
        local_a0 = local_94;
      }
      local_90 = (undefined1 *)0x40;
      iVar12 = 1;
      local_8c = (undefined1 *)0x20;
      local_88 = 0x10;
      local_84 = 4;
    }
    else {
      local_90 = (undefined1 *)0x0;
      local_8c = (undefined1 *)0x8;
      local_88 = 0;
      local_84 = 0;
      local_9c._0_2_ = 1;
      local_a0 = uVar14;
      local_94 = uVar14;
    }
    if ((0x7ffe < local_a0 - 1) || (uVar27 = local_94 + 0x100, 0x7ffe < uVar27)) {
      ThrowMagickException
                (param_3,"coders/pict.c","WritePICTImage",0x700,0x1d1,"WidthOrHeightExceedsLimit",
                 "`%s\'",param_2 + 0xc6);
      piVar5 = (int *)param_1[3];
      piVar9 = param_2;
      while (piVar8 = piVar9, piVar5 != (int *)0x0) {
        piVar5 = (int *)piVar8[0xccf];
        piVar9 = piVar5;
        param_2 = piVar8;
      }
      goto LAB_00278720;
    }
    uVar26 = param_2[7];
    puVar13 = (undefined4 *)AcquireQuantumMemory(0x200,1);
    __s = (void *)AcquireQuantumMemory(uVar27,1);
    __s_00 = (undefined1 *)AcquireQuantumMemory(local_94,1);
    if ((puVar13 == (undefined4 *)0x0) || (__s == (void *)0x0)) {
      if (__s_00 != (undefined1 *)0x0) {
        RelinquishMagickMemory(__s_00);
      }
      if (__s != (void *)0x0) goto LAB_0027924d;
    }
    else {
      if (__s_00 != (undefined1 *)0x0) {
        memset(__s_00,0,local_94);
        memset(__s,0,uVar27);
        puVar25 = puVar13;
        for (iVar20 = 0x80; iVar20 != 0; iVar20 = iVar20 + -1) {
          *puVar25 = 0;
          puVar25 = puVar25 + (uint)bVar29 * -2 + 1;
        }
        WriteBlob(param_2,0x200,puVar13);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,0);
        uVar26 = uVar26 & 0xffff;
        WriteBlobMSBShort(param_2,uVar26);
        uVar14 = uVar14 & 0xffff;
        WriteBlobMSBShort(param_2,uVar14);
        WriteBlobMSBShort(param_2,0x11);
        WriteBlobMSBShort(param_2,0x2ff);
        WriteBlobMSBShort(param_2,0xc00);
        WriteBlobMSBLong(param_2,0xfffe0000);
        WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,uVar26);
        WriteBlobMSBShort(param_2,uVar14);
        WriteBlobMSBLong(param_2,0);
        iVar20 = GetImageProfile(param_2,&DAT_002ec69d);
        if (iVar20 != 0) {
          WriteBlobMSBShort(param_2,0xa1);
          WriteBlobMSBShort(param_2,0x1f2);
          sVar10 = GetStringInfoLength(iVar20);
          WriteBlobMSBShort(param_2,sVar10 + 4);
          WriteBlobString(param_2,&DAT_002e24fa);
          uVar15 = GetStringInfoDatum(iVar20);
          uVar16 = GetStringInfoLength(iVar20);
          WriteBlob(param_2,uVar16,uVar15);
        }
        iVar20 = GetImageProfile(param_2,&DAT_002e832a);
        if (iVar20 != 0) {
          WriteBlobMSBShort(param_2,0xa1);
          WriteBlobMSBShort(param_2,0xe0);
          sVar10 = GetStringInfoLength(iVar20);
          WriteBlobMSBShort(param_2,sVar10 + 4);
          WriteBlobMSBLong(param_2,0);
          uVar15 = GetStringInfoDatum(iVar20);
          uVar16 = GetStringInfoLength(iVar20);
          WriteBlob(param_2,uVar16,uVar15);
          WriteBlobMSBShort(param_2,0xa1);
          WriteBlobMSBShort(param_2,0xe0);
          WriteBlobMSBShort(param_2,4);
          WriteBlobMSBLong(param_2,2);
        }
        WriteBlobMSBShort(param_2,1);
        WriteBlobMSBShort(param_2,10);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,uVar26);
        WriteBlobMSBShort(param_2,uVar14);
        if (*param_1 == 0xc) {
          iVar20 = CloneImage(param_2,0,0,1,param_3);
          if (iVar20 == 0) {
            CloseBlob(param_2);
          }
          else {
            iVar17 = CloneImageInfo(param_1);
            CopyMagickString(iVar17 + 0x1f0,&DAT_002e2520,0x1000);
            local_24 = 0;
            iVar18 = ImageToBlob(iVar17,iVar20,&local_24,param_3);
            DestroyImageInfo(iVar17);
            if (iVar18 != 0) {
              DestroyImage(iVar20);
              WriteBlobMSBShort(param_2,0x8200);
              WriteBlobMSBLong(param_2,local_24 + 0x9a);
              WriteBlobMSBShort(param_2,0);
              WriteBlobMSBLong(param_2,0x10000);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0x10000);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0x40000000);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0x400000);
              WriteBlobMSBShort(param_2,0);
              WriteBlobMSBShort(param_2,(short)param_2[7]);
              WriteBlobMSBShort(param_2,(short)param_2[6]);
              WriteBlobMSBShort(param_2,0);
              WriteBlobMSBShort(param_2,0x300);
              WriteBlobMSBShort(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0x566a70);
              WriteBlobMSBLong(param_2,0x65670000);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,1);
              WriteBlobMSBLong(param_2,0x16170);
              WriteBlobMSBLong(param_2,0x706c0000);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBShort(param_2,0x300);
              WriteBlobMSBShort(param_2,(short)param_2[6]);
              WriteBlobMSBShort(param_2,(short)param_2[7]);
              WriteBlobMSBShort(param_2,(int)ROUND(dVar2) & 0xffffU);
              WriteBlobMSBShort(param_2,0);
              WriteBlobMSBShort(param_2,(int)ROUND(dVar3) & 0xffffU);
              WriteBlobMSBShort(param_2,0);
              WriteBlobMSBLong(param_2,local_24);
              WriteBlobMSBShort(param_2,1);
              WriteBlobMSBLong(param_2,0xb466f74);
              WriteBlobMSBLong(param_2,0x6f202d20);
              WriteBlobMSBLong(param_2,0x4a504547);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,0);
              WriteBlobMSBLong(param_2,&DAT_0018ffff);
              WriteBlob(param_2,local_24,iVar18);
              if ((local_24 & 1) != 0) {
                WriteBlobByte(param_2,0,extraout_ECX_00,extraout_ECX_00);
              }
              RelinquishMagickMemory(iVar18);
              goto LAB_00278cac;
            }
          }
          iVar12 = 0;
          goto LAB_0027872e;
        }
LAB_00278cac:
        if (iVar12 == 2) {
          WriteBlobMSBShort(param_2,0x98);
        }
        else {
          WriteBlobMSBShort(param_2,0x9a);
          WriteBlobMSBLong(param_2,0xff);
        }
        WriteBlobMSBShort(param_2,(ushort)local_94 | 0x8000);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,uVar26);
        WriteBlobMSBShort(param_2,uVar14);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,local_84);
        WriteBlobMSBLong(param_2,0);
        dVar4 = (double)DAT_002df2b8;
        WriteBlobMSBShort(param_2,(int)ROUND((float)dVar2 + DAT_002df2b8) & 0xffff);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,(int)ROUND(dVar3 + dVar4) & 0xffff);
        WriteBlobMSBShort(param_2,0);
        WriteBlobMSBShort(param_2,local_88);
        WriteBlobMSBShort(param_2,local_8c);
        WriteBlobMSBShort(param_2,local_9c._0_2_);
        WriteBlobMSBShort(param_2,8);
        WriteBlobMSBLong(param_2,0);
        WriteBlobMSBLong(param_2,0);
        WriteBlobMSBLong(param_2,0);
        if (iVar12 == 2) {
          WriteBlobMSBLong(param_2,0);
          WriteBlobMSBShort(param_2,0);
          WriteBlobMSBShort(param_2,(short)param_2[9] + -1);
          if (0 < param_2[9]) {
            iVar12 = 0;
            uVar27 = 0;
            do {
              WriteBlobMSBShort(param_2,uVar27 & 0xffff);
              dVar2 = *(double *)(param_2[10] + 0x20 + iVar12);
              uVar19 = 0;
              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {
                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;
              }
              WriteBlobMSBShort(param_2,uVar19);
              dVar2 = *(double *)(param_2[10] + 0x28 + iVar12);
              uVar19 = 0;
              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {
                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;
              }
              WriteBlobMSBShort(param_2,uVar19);
              dVar2 = *(double *)(param_2[10] + 0x30 + iVar12);
              uVar19 = 0;
              if ((0.0 < dVar2) && (uVar19 = 0xffff, dVar2 < (double)DAT_002df8a8)) {
                uVar19 = (int)ROUND(dVar2 + (double)DAT_002df2b8) & 0xffff;
              }
              uVar27 = uVar27 + 1;
              iVar12 = iVar12 + 0x50;
              WriteBlobMSBShort(param_2,uVar19);
            } while ((int)uVar27 < param_2[9]);
          }
          WriteBlobMSBShort(param_2,0);
          WriteBlobMSBShort(param_2,0);
          WriteBlobMSBShort(param_2,uVar26);
          WriteBlobMSBShort(param_2,uVar14);
          WriteBlobMSBShort(param_2,0);
          WriteBlobMSBShort(param_2,0);
          WriteBlobMSBShort(param_2,uVar26);
          WriteBlobMSBShort(param_2,uVar14);
          WriteBlobMSBShort(param_2,local_90);
          local_9c = (undefined1 *)0x0;
          local_98 = 0;
          local_a0 = 0;
          uVar14 = 0;
          if (0 < param_2[7]) {
            do {
              iVar12 = GetVirtualPixels(param_2,0,local_a0,param_2[6],1,param_3);
              if (iVar12 == 0) break;
              iVar20 = param_2[6];
              if (0 < iVar20) {
                iVar17 = param_2[0xa6];
                iVar18 = param_2[0xaa];
                puVar21 = __s_00;
                do {
                  while (*(int *)(iVar18 + 0x40) != 0) {
                    puVar22 = puVar21 + 1;
                    pdVar1 = (double *)(iVar12 + *(int *)(iVar18 + 0x44) * 8);
                    iVar12 = iVar12 + iVar17 * 8;
                    *puVar21 = (char)(short)ROUND(*pdVar1);
                    puVar21 = puVar22;
                    if (puVar22 == __s_00 + iVar20) goto LAB_00279a01;
                  }
                  *puVar21 = 0;
                  puVar21 = puVar21 + 1;
                  iVar12 = iVar12 + iVar17 * 8;
                } while (puVar21 != __s_00 + iVar20);
              }
LAB_00279a01:
              iVar12 = FUN_00277f10(__s);
              uVar14 = uVar14 + iVar12;
              if ((param_2[0xccf] == 0) &&
                 (iVar12 = SetImageProgress(param_2,"Save/Image",local_9c,local_98,param_2[7],0),
                 iVar12 == 0)) break;
              local_a0 = local_a0 + 1;
              bVar28 = 0xfffffffe < local_9c;
              local_9c = (undefined1 *)((int)local_9c + 1);
              local_98 = local_98 + (uint)bVar28;
            } while ((int)local_a0 < param_2[7]);
            goto LAB_002792ae;
          }
        }
        else {
          WriteBlobMSBShort(param_2,0);
          WriteBlobMSBShort(param_2,0);
          WriteBlobMSBShort(param_2,uVar26);
          WriteBlobMSBShort(param_2,uVar14);
          WriteBlobMSBShort(param_2,0);
          WriteBlobMSBShort(param_2,0);
          WriteBlobMSBShort(param_2,uVar26);
          WriteBlobMSBShort(param_2,uVar14);
          WriteBlobMSBShort(param_2,local_90);
          if (*param_1 == 0xc) {
            uVar16 = 0;
            uVar15 = extraout_ECX;
            memset(__s_00,0,local_94);
            if (0 < param_2[7]) {
              iVar12 = 0;
              uVar14 = 0;
              do {
                iVar12 = iVar12 + 1;
                iVar20 = FUN_00277f10(__s,uVar16,local_94,uVar15);
                uVar14 = uVar14 + iVar20;
              } while (iVar12 < param_2[7]);
              goto LAB_002792ae;
            }
          }
          else {
            iVar12 = param_2[6];
            local_a4 = __s_00 + iVar12 * 3;
            if (0 < param_2[7]) {
              local_5c = 0;
              local_58 = 0;
              iVar20 = 0;
              uVar14 = 0;
              while (iVar12 = GetVirtualPixels(param_2,0,iVar20,iVar12,1,param_3), iVar12 != 0) {
                iVar17 = param_2[6];
                puVar21 = __s_00 + iVar17;
                puVar22 = puVar21 + iVar17;
                iVar18 = param_2[0xa5];
                local_9c = puVar21;
                local_90 = puVar22;
                local_8c = __s_00;
                if (iVar18 != 0) {
                  local_90 = puVar22 + iVar17;
                  local_a4 = __s_00;
                  local_9c = puVar22;
                  local_8c = puVar21;
                }
                if (0 < iVar17) {
                  iVar6 = param_2[0xa6];
                  iVar23 = 0;
                  iVar7 = param_2[0xaa];
                  puVar21 = local_a4;
                  do {
                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 8) * 8);
                    uVar24 = 0;
                    if (0.0 < dVar2) {
                      dVar2 = dVar2 / (double)DAT_002e814c;
                      if ((double)DAT_002e8150 <= dVar2) {
                        uVar24 = 0xff;
                      }
                      else {
                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                      }
                    }
                    local_8c[iVar23] = uVar24;
                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x14) * 8);
                    uVar24 = 0;
                    if (0.0 < dVar2) {
                      dVar2 = dVar2 / (double)DAT_002e814c;
                      if ((double)DAT_002e8150 <= dVar2) {
                        uVar24 = 0xff;
                      }
                      else {
                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                      }
                    }
                    local_9c[iVar23] = uVar24;
                    dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x20) * 8);
                    uVar24 = 0;
                    if (0.0 < dVar2) {
                      dVar2 = dVar2 / (double)DAT_002e814c;
                      if ((double)DAT_002e8150 <= dVar2) {
                        uVar24 = 0xff;
                      }
                      else {
                        uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                      }
                    }
                    local_90[iVar23] = uVar24;
                    local_a4 = puVar21;
                    if (iVar18 != 0) {
                      local_a4 = puVar21 + 1;
                      uVar24 = 0xff;
                      if (*(int *)(iVar7 + 0x34) != 0) {
                        dVar2 = *(double *)(iVar12 + *(int *)(iVar7 + 0x38) * 8);
                        uVar24 = 0;
                        if (0.0 < dVar2) {
                          dVar2 = dVar2 / (double)DAT_002e814c;
                          if ((double)DAT_002e8150 <= dVar2) {
                            uVar24 = 0xff;
                          }
                          else {
                            uVar24 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                          }
                        }
                      }
                      *puVar21 = uVar24;
                    }
                    iVar12 = iVar12 + iVar6 * 8;
                    iVar23 = iVar23 + 1;
                    puVar21 = local_a4;
                  } while (iVar17 != iVar23);
                }
                iVar12 = FUN_00277f10(__s);
                uVar14 = uVar14 + iVar12;
                if ((param_2[0xccf] == 0) &&
                   (iVar12 = SetImageProgress(param_2,"Save/Image",local_5c,local_58,param_2[7],0),
                   iVar12 == 0)) break;
                iVar20 = iVar20 + 1;
                bVar28 = 0xfffffffe < local_5c;
                local_5c = local_5c + 1;
                local_58 = local_58 + (uint)bVar28;
                if (param_2[7] <= iVar20) break;
                iVar12 = param_2[6];
              }
LAB_002792ae:
              if ((uVar14 & 1) != 0) {
                WriteBlobByte(param_2,0);
              }
            }
          }
        }
        WriteBlobMSBShort(param_2,0xff);
        TellBlob(param_2);
        uVar11 = SeekBlob(param_2,0x200,0,0);
        WriteBlobMSBShort(param_2,uVar11);
        RelinquishMagickMemory(__s_00);
        RelinquishMagickMemory(__s);
        RelinquishMagickMemory(puVar13);
        CloseBlob(param_2);
        iVar12 = 1;
        goto LAB_0027872e;
      }
LAB_0027924d:
      RelinquishMagickMemory(__s);
    }
    if (puVar13 != (undefined4 *)0x0) {
      RelinquishMagickMemory(puVar13);
    }
    ThrowMagickException
              (param_3,"coders/pict.c","WritePICTImage",0x710,400,"MemoryAllocationFailed","`%s\'",
               param_2 + 0xc6);
    piVar5 = (int *)param_1[3];
    piVar9 = param_2;
    while (piVar8 = piVar9, piVar5 != (int *)0x0) {
      piVar5 = (int *)piVar8[0xccf];
      piVar9 = piVar5;
      param_2 = piVar8;
    }
  }
  else {
    ThrowMagickException
              (param_3,"coders/pict.c","WritePICTImage",0x6bc,0x1d1,"WidthOrHeightExceedsLimit",
               "`%s\'",param_2 + 0xc6);
    if (param_1[3] != 0) {
      piVar5 = (int *)param_2[0xccf];
      while (piVar9 = piVar5, piVar9 != (int *)0x0) {
        param_2 = piVar9;
        piVar5 = (int *)piVar9[0xccf];
      }
    }
  }
LAB_00278720:
  CloseBlob(param_2);
  iVar12 = 0;
LAB_0027872e:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return iVar12;
  }
                    /* WARNING: Subroutine does not return */
  FUN_002decd0();
}

