
/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */
/* 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 WritePALMImage(ImageInfo *image_info,Image *image,ExceptionInfo *exception)

{
  char *pcVar1;
  double dVar2;
  double dVar3;
  int iVar4;
  PixelChannelMap *pPVar5;
  PixelInfo *pPVar6;
  PixelTrait PVar7;
  _Image *p_Var8;
  Image *pIVar9;
  byte value;
  uchar uVar10;
  MagickBooleanType MVar11;
  QuantizeInfo *quantize_info;
  size_t sVar12;
  size_t sVar13;
  char *__s;
  Quantum *pQVar14;
  uint uVar15;
  CompressionType CVar16;
  Image *pIVar17;
  uint uVar18;
  uint uVar19;
  char *pcVar20;
  int iVar21;
  uchar (*pauVar22) [3];
  PixelInfo *pPVar23;
  int iVar24;
  size_t sVar25;
  char cVar26;
  uint uVar27;
  int iVar28;
  size_t sVar29;
  int in_GS_OFFSET;
  bool bVar30;
  MagickSizeType MVar31;
  MagickOffsetType MVar32;
  uint local_d4;
  ulonglong local_cc;
  PixelChannelMap *local_b8;
  char *local_b0;
  uint local_ac;
  uint local_a0;
  char *local_9c;
  double local_94;
  double local_8c;
  double local_84;
  char *local_7c;
  char *local_78;
  MagickSizeType local_74;
  ulonglong local_64;
  uint local_54;
  int local_50;
  ushort local_48;
  uchar local_46;
  byte local_45;
  char tmpbuf [8];
  
  iVar4 = *(int *)(in_GS_OFFSET + 0x14);
  if (image_info == (ImageInfo *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info != (const ImageInfo *) NULL","coders/palm.c",0x2ed,"WritePALMImage");
  }
  if (image_info->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,
                  "WritePALMImage");
  }
  if (image == (Image *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");
  }
  if (image->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");
  }
  if (image->debug != MagickFalse) {
    LogMagickEvent(TraceEvent,"coders/palm.c","WritePALMImage",0x2f2,"%s",(char)image + '\x18');
  }
  if (exception == (ExceptionInfo *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");
  }
  if (exception->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,
                  "WritePALMImage");
  }
  MVar11 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
  if (MVar11 != MagickFalse) {
    quantize_info = AcquireQuantizeInfo(image_info);
    sVar12 = GetImageListLength(image);
    local_8c = 0.0;
    local_48 = 0;
    local_84 = 0.0;
    local_46 = '\0';
    local_94 = 0.0;
    local_54 = 0;
    local_50 = 0;
    local_74 = 0;
    do {
      TransformImageColorspace(image,sRGBColorspace,exception);
      sVar13 = GetNumberColors(image,(FILE *)0x0,exception);
      local_a0 = 1;
      if (sVar13 < 3) {
        TransformImageColorspace(image,image->colorspace,exception);
        local_a0 = 1;
        local_45 = 1;
LAB_00261df3:
        TransformImageColorspace(image,GRAYColorspace,exception);
        SetImageType(image,PaletteType,exception);
        SortColormapByIntensity(image,exception);
      }
      else {
        do {
          local_a0 = local_a0 * 2;
          local_45 = (byte)local_a0;
        } while ((uint)(1 << (local_45 & 0x1f)) < sVar13);
        if (local_a0 < 0x11) {
          if (local_a0 == 0x10) {
            local_45 = 0x10;
          }
          else {
            TransformImageColorspace(image,image->colorspace,exception);
            if (local_a0 < 8) goto LAB_00261df3;
          }
        }
        else {
          local_a0 = 0x10;
          local_45 = 0x10;
        }
      }
      if ((image->storage_class == PseudoClass) &&
         ((image->colors < 0x101 ||
          (SetImageStorageClass(image,DirectClass,exception), image->storage_class == PseudoClass)))
         ) {
        local_48 = local_48 | 0x4000;
      }
      else {
        local_48 = local_48 | 0x400;
      }
      WriteBlobMSBShort(image,(ushort)image->columns);
      WriteBlobMSBShort(image,(ushort)image->rows);
      sVar13 = (int)((ulonglong)((int)(0x10 / (ulonglong)local_a0) + -1 + image->columns) /
                    (0x10 / (ulonglong)local_a0)) * 2;
      WriteBlobMSBShort(image,(ushort)sVar13);
      if ((image_info->compression == RLECompression) || (image_info->compression == FaxCompression)
         ) {
        local_48 = local_48 | 0x8000;
      }
      WriteBlobMSBShort(image,local_48);
      WriteBlobByte(image,(byte)local_a0);
      if (1 < local_a0) {
        local_46 = '\x01';
      }
      if ((image_info->compression == RLECompression) || (image_info->compression == FaxCompression)
         ) {
        local_46 = '\x02';
      }
      WriteBlobByte(image,local_46);
      WriteBlobMSBShort(image,0);
      WriteBlobByte(image,'\0');
      if (image_info->compression == RLECompression) {
        WriteBlobByte(image,'\x01');
      }
      else if (image_info->compression == FaxCompression) {
        WriteBlobByte(image,'\0');
      }
      else {
        WriteBlobByte(image,0xff);
      }
      WriteBlobMSBShort(image,0);
      if (local_a0 == 0x10) {
        WriteBlobByte(image,'\x05');
        WriteBlobByte(image,'\x06');
        WriteBlobByte(image,'\x05');
        WriteBlobByte(image,'\0');
        WriteBlobMSBLong(image,0);
        local_64 = 0x18;
      }
      else {
        local_64 = 0x10;
        if (local_a0 == 8) {
          if ((local_48 & 0x4000) == 0) {
            pIVar17 = ConstituteImage(0x100,1,"RGB",CharPixel,PalmPalette,exception);
            TransformImageColorspace(pIVar17,pIVar17->colorspace,exception);
            RemapImage(quantize_info,image,pIVar17,exception);
            if (0 < (int)image->rows) {
              sVar29 = image->columns;
              local_78 = (char *)0x0;
              do {
                pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception);
                if (pQVar14 == (Quantum *)0x0) break;
                sVar29 = image->columns;
                if (0 < (int)sVar29) {
                  pPVar6 = image->colormap;
                  local_d4 = 0;
                  pPVar5 = image->channel_map;
                  sVar25 = image->number_channels;
                  PVar7 = pPVar5[5].traits;
LAB_002618c8:
                  pPVar23 = pPVar6;
                  if (PVar7 != UndefinedPixelTrait) {
                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);
                  }
                  dVar2 = pPVar23->red;
                  if (NAN(dVar2)) {
                    iVar24 = 0;
                    pauVar22 = PalmPalette;
                    do {
                      if ((*pauVar22)[0] == '\0') {
                        uVar10 = '\0';
                        if (0.0 < pPVar23->green) {
                          dVar2 = pPVar23->green / (double)DAT_002e814c;
                          uVar10 = 0xff;
                          if (dVar2 < (double)DAT_002e8150) {
                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                          }
                        }
                        if ((*pauVar22)[1] == uVar10) {
                          uVar10 = '\0';
                          if (0.0 < pPVar23->blue) {
                            dVar2 = pPVar23->blue / (double)DAT_002e814c;
                            uVar10 = 0xff;
                            if (dVar2 < (double)DAT_002e8150) {
                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                            }
                          }
                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;
                        }
                      }
                      iVar24 = iVar24 + 1;
                      pauVar22 = pauVar22 + 1;
                    } while (iVar24 != 0x100);
                  }
                  else if (dVar2 <= 0.0) {
                    iVar24 = 0;
                    pauVar22 = PalmPalette;
                    do {
                      if ((*pauVar22)[0] == '\0') {
                        uVar10 = '\0';
                        if (0.0 < pPVar23->green) {
                          dVar2 = pPVar23->green / (double)DAT_002e814c;
                          uVar10 = 0xff;
                          if (dVar2 < (double)DAT_002e8150) {
                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                          }
                        }
                        if ((*pauVar22)[1] == uVar10) {
                          uVar10 = '\0';
                          if (0.0 < pPVar23->blue) {
                            dVar2 = pPVar23->blue / (double)DAT_002e814c;
                            uVar10 = 0xff;
                            if (dVar2 < (double)DAT_002e8150) {
                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                            }
                          }
                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;
                        }
                      }
                      iVar24 = iVar24 + 1;
                      pauVar22 = pauVar22 + 1;
                    } while (iVar24 != 0x100);
                  }
                  else {
                    iVar24 = 0;
                    pauVar22 = PalmPalette;
                    do {
                      uVar10 = 0xff;
                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {
                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +
                                                     (double)DAT_002df2b8);
                      }
                      if ((*pauVar22)[0] == uVar10) {
                        uVar10 = '\0';
                        if (0.0 < pPVar23->green) {
                          dVar3 = pPVar23->green / (double)DAT_002e814c;
                          uVar10 = 0xff;
                          if (dVar3 < (double)DAT_002e8150) {
                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);
                          }
                        }
                        if ((*pauVar22)[1] == uVar10) {
                          uVar10 = '\0';
                          if (0.0 < pPVar23->blue) {
                            dVar3 = pPVar23->blue / (double)DAT_002e814c;
                            uVar10 = 0xff;
                            if (dVar3 < (double)DAT_002e8150) {
                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);
                            }
                          }
                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;
                        }
                      }
                      iVar24 = iVar24 + 1;
                      pauVar22 = pauVar22 + 1;
                    } while (iVar24 != 0x100);
                  }
                  dVar2 = -1.0;
                  goto LAB_00261adb;
                }
LAB_00261b09:
                local_78 = (char *)((int)local_78 + 1);
              } while ((int)local_78 < (int)image->rows);
            }
            DestroyImage(pIVar17);
            local_64 = 0x10;
          }
          else {
            MVar11 = IdentifyPaletteImage(image,exception);
            quantize_info->dither_method = (MVar11 == MagickFalse) + NoDitherMethod;
            quantize_info->number_colors = image->colors;
            QuantizeImage(quantize_info,image,exception);
            WriteBlobMSBShort(image,(ushort)image->colors);
            if (image->colors == 0) {
              local_64 = 0x12;
            }
            else {
              iVar24 = 0;
              local_d4 = 0;
              do {
                WriteBlobByte(image,(uchar)local_d4);
                dVar2 = *(double *)((int)&image->colormap->red + iVar24);
                uVar10 = '\0';
                if (0.0 < dVar2) {
                  dVar2 = dVar2 / (double)DAT_002e814c;
                  uVar10 = 0xff;
                  if (dVar2 < (double)DAT_002e8150) {
                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                  }
                }
                WriteBlobByte(image,uVar10);
                dVar2 = *(double *)((int)&image->colormap->green + iVar24);
                uVar10 = '\0';
                if (0.0 < dVar2) {
                  dVar2 = dVar2 / (double)DAT_002e814c;
                  uVar10 = 0xff;
                  if (dVar2 < (double)DAT_002e8150) {
                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                  }
                }
                WriteBlobByte(image,uVar10);
                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);
                uVar10 = '\0';
                if (0.0 < dVar2) {
                  dVar2 = dVar2 / (double)DAT_002e814c;
                  uVar10 = 0xff;
                  if (dVar2 < (double)DAT_002e8150) {
                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                  }
                }
                iVar24 = iVar24 + 0x50;
                WriteBlobByte(image,uVar10);
                local_d4 = local_d4 + 1;
              } while (local_d4 < image->colors);
              local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12);
            }
          }
        }
      }
      if ((short)local_48 < 0) {
        WriteBlobMSBShort(image,0);
      }
      local_7c = (char *)0x0;
      pIVar17 = image;
      if ((image_info->compression == FaxCompression) &&
         (local_7c = (char *)AcquireQuantumMemory(sVar13 + 0x100,1), local_7c == (char *)0x0)) {
        DestroyQuantizeInfo(quantize_info);
        ThrowMagickException
                  (exception,"coders/palm.c","WritePALMImage",0x376,ErrorException,
                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);
        p_Var8 = (_Image *)image_info->adjoin;
        while (pIVar9 = image, p_Var8 != (_Image *)0x0) {
          p_Var8 = pIVar9->previous;
          image = p_Var8;
          pIVar17 = pIVar9;
        }
LAB_0026128c:
        CloseBlob(pIVar17);
        MVar11 = MagickFalse;
        break;
      }
      __s = (char *)AcquireQuantumMemory(sVar13 + 0x100,1);
      if (__s == (char *)0x0) {
        if (local_7c != (char *)0x0) {
          RelinquishMagickMemory(local_7c);
        }
        DestroyQuantizeInfo(quantize_info);
        ThrowMagickException
                  (exception,"coders/palm.c","WritePALMImage",0x380,ErrorException,
                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);
        p_Var8 = (_Image *)image_info->adjoin;
        while (pIVar9 = image, p_Var8 != (_Image *)0x0) {
          p_Var8 = pIVar9->previous;
          image = p_Var8;
          pIVar17 = pIVar9;
        }
        goto LAB_0026128c;
      }
      if (0 < (int)image->rows) {
        iVar24 = 0;
        do {
          memset(__s,0,sVar13);
          pQVar14 = GetVirtualPixels(image,0,iVar24,image->columns,1,exception);
          if (pQVar14 == (Quantum *)0x0) break;
          local_ac = image->columns;
          if (local_a0 == 0x10) {
            if ((int)local_ac < 1) goto LAB_0026097b;
            local_b8 = (PixelChannelMap *)0x0;
            do {
              pPVar5 = image->channel_map;
              uVar18 = (((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |
                       (((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800 |
                       ((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f) / 0xffff;
              if ((pPVar5[4].traits != UndefinedPixelTrait) && (pQVar14[pPVar5[4].offset] == 0.0)) {
                local_48 = local_48 | 0x2000;
                local_94 = pQVar14[pPVar5->offset];
                local_8c = pQVar14[pPVar5[2].offset];
                local_84 = pQVar14[pPVar5[1].offset];
              }
              __s[(int)local_b8 * 2] = (char)(uVar18 >> 8);
              __s[(int)local_b8 * 2 + 1] = (char)uVar18;
              local_b8 = (PixelChannelMap *)((int)local_b8 + 1);
              pQVar14 = pQVar14 + image->number_channels;
            } while ((int)local_b8 < (int)image->columns);
            CVar16 = image_info->compression;
            if (CVar16 != RLECompression) goto LAB_0026098a;
LAB_00260d43:
            if (0 < (int)sVar13) {
              iVar21 = 0;
              do {
                uVar10 = __s[iVar21];
                iVar28 = iVar21 + 1;
                if (uVar10 == __s[iVar21 + 1]) {
                  if ((int)sVar13 <= iVar28) {
                    WriteBlobByte(image,'\x01');
                    WriteBlobByte(image,uVar10);
                    break;
                  }
                  uVar18 = 1;
                  do {
                    uVar18 = uVar18 + 1;
                    iVar28 = iVar21 + uVar18;
                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;
                  } while (iVar28 < (int)sVar13);
                }
                else {
                  uVar18 = 1;
                }
                WriteBlobByte(image,(uchar)uVar18);
                WriteBlobByte(image,uVar10);
                iVar21 = iVar28;
              } while (iVar28 < (int)sVar13);
            }
          }
          else {
            uVar18 = (uint)(byte)(8 - local_45);
            local_b8 = (PixelChannelMap *)__s;
            if ((int)local_ac < 1) {
              cVar26 = '\0';
            }
            else if (local_a0 < 8) {
              uVar27 = 0;
              iVar21 = 0;
              uVar19 = uVar18;
              do {
                while( true ) {
                  if (image->channel_map[5].traits == UndefinedPixelTrait) {
                    dVar2 = 0.0;
                  }
                  else {
                    dVar2 = pQVar14[image->channel_map[5].offset];
                  }
                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);
                  uVar15 = image->colors - 1;
                  if (1 < uVar15) {
                    local_cc = (ulonglong)uVar15;
                    dVar2 = dVar2 / (double)local_cc;
                  }
                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);
                  cVar26 = (char)uVar27;
                  if (uVar19 != 0) break;
                  iVar21 = iVar21 + 1;
                  *(char *)local_b8 = cVar26;
                  pQVar14 = pQVar14 + image->number_channels;
                  local_ac = image->columns;
                  if ((int)local_ac <= iVar21) {
                    cVar26 = '\0';
                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);
                    goto LAB_0026095c;
                  }
                  uVar27 = 0;
                  uVar19 = uVar18;
                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);
                }
                iVar21 = iVar21 + 1;
                pQVar14 = pQVar14 + image->number_channels;
                local_ac = image->columns;
                uVar19 = uVar19 - local_a0;
              } while (iVar21 < (int)local_ac);
            }
            else {
              local_b8 = image->channel_map;
              uVar27 = 0;
              iVar21 = 0;
              uVar19 = uVar18;
              local_9c = __s;
              do {
                while( true ) {
                  if (local_b8[5].traits != UndefinedPixelTrait) {
                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<
                                      ((byte)uVar19 & 0x1f);
                  }
                  cVar26 = (char)uVar27;
                  if (uVar19 != 0) break;
                  iVar21 = iVar21 + 1;
                  *local_9c = cVar26;
                  local_ac = image->columns;
                  pQVar14 = pQVar14 + image->number_channels;
                  if ((int)local_ac <= iVar21) {
                    cVar26 = '\0';
                    local_b8 = (PixelChannelMap *)(local_9c + 1);
                    goto LAB_0026095c;
                  }
                  local_b8 = image->channel_map;
                  uVar27 = 0;
                  uVar19 = uVar18;
                  local_9c = local_9c + 1;
                }
                iVar21 = iVar21 + 1;
                pQVar14 = pQVar14 + image->number_channels;
                uVar19 = uVar19 - local_a0;
              } while (iVar21 < (int)local_ac);
              local_b8 = (PixelChannelMap *)local_9c;
            }
LAB_0026095c:
            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {
              *(char *)local_b8 = cVar26;
            }
LAB_0026097b:
            CVar16 = image_info->compression;
            if (CVar16 == RLECompression) goto LAB_00260d43;
LAB_0026098a:
            if (CVar16 == FaxCompression) {
              if (0 < (int)sVar13) {
                pcVar20 = __s;
                sVar29 = sVar13;
                pcVar1 = local_7c;
                do {
                  sVar25 = 8;
                  if ((int)sVar29 < 9) {
                    sVar25 = sVar29;
                  }
                  if (iVar24 == 0) {
                    tmpbuf[0] = *pcVar20;
                    if (sVar29 == 1) {
                      value = 0x80;
                    }
                    else {
                      tmpbuf[1] = pcVar20[1];
                      if (sVar29 == 2) {
                        value = 0xc0;
                      }
                      else {
                        tmpbuf[2] = pcVar20[2];
                        if (sVar29 == 3) {
                          value = 0xe0;
                        }
                        else {
                          tmpbuf[3] = pcVar20[3];
                          if (sVar29 == 4) {
                            value = 0xf0;
                          }
                          else {
                            tmpbuf[4] = pcVar20[4];
                            if (sVar29 == 5) {
                              value = 0xf8;
                            }
                            else {
                              tmpbuf[5] = pcVar20[5];
                              if (sVar29 == 6) {
                                value = 0xfc;
                              }
                              else {
                                tmpbuf[6] = pcVar20[6];
                                if ((int)sVar29 < 8) {
                                  value = 0xfe;
                                }
                                else {
                                  tmpbuf[7] = pcVar20[7];
                                  value = 0xff;
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                    local_78 = tmpbuf + sVar25;
                  }
                  else {
                    if (*pcVar20 == *pcVar1) {
                      value = 0;
                      local_78 = tmpbuf;
                    }
                    else {
                      value = 0x80;
                      local_78 = tmpbuf + 1;
                      tmpbuf[0] = *pcVar20;
                    }
                    if (sVar29 != 1) {
                      local_b0 = local_78;
                      if (pcVar1[1] != pcVar20[1]) {
                        local_b0 = local_78 + 1;
                        value = value | 0x40;
                        *local_78 = pcVar20[1];
                      }
                      local_78 = local_b0;
                      if (sVar29 != 2) {
                        if (pcVar1[2] != pcVar20[2]) {
                          value = value | 0x20;
                          local_78 = local_b0 + 1;
                          *local_b0 = pcVar20[2];
                        }
                        if (sVar29 != 3) {
                          local_b0 = local_78;
                          if (pcVar1[3] != pcVar20[3]) {
                            local_b0 = local_78 + 1;
                            value = value | 0x10;
                            *local_78 = pcVar20[3];
                          }
                          local_78 = local_b0;
                          if (sVar29 != 4) {
                            if (pcVar1[4] != pcVar20[4]) {
                              value = value | 8;
                              local_78 = local_b0 + 1;
                              *local_b0 = pcVar20[4];
                            }
                            if (sVar29 != 5) {
                              local_b0 = local_78;
                              if (pcVar1[5] != pcVar20[5]) {
                                local_b0 = local_78 + 1;
                                value = value | 4;
                                *local_78 = pcVar20[5];
                              }
                              local_78 = local_b0;
                              if (sVar29 != 6) {
                                if (pcVar1[6] != pcVar20[6]) {
                                  value = value | 2;
                                  local_78 = local_b0 + 1;
                                  *local_b0 = pcVar20[6];
                                }
                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {
                                  value = value | 1;
                                  *local_78 = pcVar20[7];
                                  local_78 = local_78 + 1;
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                  sVar29 = sVar29 - 8;
                  WriteBlobByte(image,value);
                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);
                  pcVar1 = pcVar1 + 8;
                  pcVar20 = pcVar20 + 8;
                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);
              }
              memcpy(local_7c,__s,sVar13);
            }
            else {
              WriteBlob(image,sVar13,__s);
            }
          }
          iVar24 = iVar24 + 1;
        } while (iVar24 < (int)image->rows);
      }
      if ((local_48 & 0x2000) != 0) {
        SeekBlob(image,local_74 + 6,0);
        WriteBlobMSBShort(image,local_48);
        local_64 = SeekBlob(image,local_74 + 0xc,0);
        WriteBlobByte(image,'\0');
      }
      if (local_a0 == 0x10) {
        local_64 = SeekBlob(image,local_74 + 0x14,0);
        WriteBlobByte(image,'\0');
        dVar2 = (double)DAT_00306a38;
        dVar3 = (double)DAT_002df8a8;
        WriteBlobByte(image,(uchar)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));
        WriteBlobByte(image,(uchar)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar3));
        WriteBlobByte(image,(uchar)(short)ROUND((dVar2 * local_8c) / dVar3));
      }
      if ((short)local_48 < 0) {
        MVar32 = SeekBlob(image,local_74 + local_64,0);
        MVar31 = GetBlobSize(image);
        WriteBlobMSBShort(image,((short)MVar31 - (short)local_74) - (short)MVar32);
      }
      RelinquishMagickMemory(__s);
      if (local_7c != (char *)0x0) {
        RelinquishMagickMemory(local_7c);
      }
      pIVar17 = GetNextImageInList(image);
      if (pIVar17 == (Image *)0x0) goto LAB_00261e48;
      MVar31 = GetBlobSize(image);
      uVar18 = (uint)MVar31 & 3;
      iVar24 = 0;
      if ((MVar31 & 3) != 0) {
        do {
          WriteBlobByte(image,'\0');
          bVar30 = uVar18 != 0;
          uVar18 = uVar18 - 1;
          iVar24 = iVar24 + -1 + (uint)bVar30;
        } while (iVar24 != 0 || uVar18 != 0);
      }
      SeekBlob(image,local_74 + 10,0);
      MVar31 = GetBlobSize(image);
      WriteBlobMSBShort(image,(ushort)((uint)(MVar31 - local_74) >> 2));
      local_74 = GetBlobSize(image);
      SeekBlob(image,local_74,0);
      image = SyncNextImageInList(image);
      bVar30 = 0xfffffffe < local_54;
      MVar11 = SetImageProgress(image,"Save/Images",CONCAT44(local_50,local_54),(ulonglong)sVar12);
      if ((MVar11 == MagickFalse) ||
         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30,
         image_info->adjoin == MagickFalse)) goto LAB_00261e48;
    } while( true );
  }
LAB_00260565:
  if (iVar4 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return MVar11;
LAB_00261ad3:
  dVar2 = (double)iVar24;
LAB_00261adb:
  if (PVar7 != UndefinedPixelTrait) {
    pQVar14[pPVar5[5].offset] = dVar2;
  }
  local_d4 = local_d4 + 1;
  pQVar14 = pQVar14 + sVar25;
  if (local_d4 == sVar29) goto LAB_00261b09;
  goto LAB_002618c8;
LAB_00261e48:
  DestroyQuantizeInfo(quantize_info);
  CloseBlob(image);
  MVar11 = MagickTrue;
  goto LAB_00260565;
}



/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

int FUN_00260480(int *param_1,int *param_2,uint param_3)

{
  char *pcVar1;
  double dVar2;
  double dVar3;
  double dVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int *piVar9;
  byte bVar10;
  undefined1 uVar11;
  short sVar12;
  short sVar13;
  int iVar14;
  int *piVar15;
  undefined4 uVar16;
  uint uVar17;
  char *pcVar18;
  int iVar19;
  int iVar20;
  uint uVar21;
  int iVar22;
  uint uVar23;
  char *pcVar24;
  int iVar25;
  int iVar26;
  char cVar27;
  uint uVar28;
  int *piVar29;
  int in_GS_OFFSET;
  bool bVar30;
  longlong lVar31;
  longlong lVar32;
  uint local_d4;
  ulonglong local_cc;
  char *local_b8;
  byte local_b4;
  char *local_b0;
  uint local_ac;
  uint local_a0;
  char *local_9c;
  double local_94;
  double local_8c;
  double local_84;
  char *local_7c;
  char *local_78;
  int local_74;
  int local_64;
  uint local_60;
  uint local_54;
  int local_50;
  ushort local_48;
  undefined1 local_46;
  byte local_45;
  char local_28 [4];
  char local_24;
  char local_23;
  char local_22;
  char local_21;
  int local_20;
  
  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/palm.c",0x2ed,"WritePALMImage");
  }
  if (param_1[0xc7d] != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,
                  "WritePALMImage");
  }
  if (param_2 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");
  }
  if (param_2[0xcd1] != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");
  }
  if (param_2[0xcca] != 0) {
    LogMagickEvent(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6);
  }
  if (param_3 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");
  }
  if (*(int *)(param_3 + 0x1c) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,
                  "WritePALMImage");
  }
  uVar21 = param_3;
  iVar14 = OpenBlob(param_1,param_2,4,param_3);
  if (iVar14 != 0) {
    piVar15 = (int *)AcquireQuantizeInfo(param_1);
    uVar16 = GetImageListLength(param_2);
    local_8c = 0.0;
    local_48 = 0;
    local_84 = 0.0;
    local_46 = 0;
    local_94 = 0.0;
    local_54 = 0;
    local_50 = 0;
    lVar31 = 0;
    do {
      local_74 = (int)lVar31;
      iVar14 = local_74;
      TransformImageColorspace(param_2,0x17,param_3);
      uVar17 = GetNumberColors(param_2,0,param_3);
      local_a0 = 1;
      if (uVar17 < 3) {
        TransformImageColorspace(param_2,param_2[1],param_3);
        local_a0 = 1;
        local_45 = 1;
LAB_00261df3:
        TransformImageColorspace(param_2,3,param_3,uVar21);
        SetImageType(param_2,4,param_3);
        SortColormapByIntensity(param_2,param_3);
      }
      else {
        do {
          local_a0 = local_a0 * 2;
          local_45 = (byte)local_a0;
        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);
        if (local_a0 < 0x11) {
          if (local_a0 == 0x10) {
            local_45 = 0x10;
          }
          else {
            uVar21 = local_a0;
            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);
            if (local_a0 < 8) goto LAB_00261df3;
          }
        }
        else {
          local_a0 = 0x10;
          local_45 = 0x10;
        }
      }
      if ((*param_2 == 2) &&
         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {
        local_48 = local_48 | 0x4000;
      }
      else {
        local_48 = local_48 | 0x400;
      }
      WriteBlobMSBShort(param_2,(short)param_2[6]);
      WriteBlobMSBShort(param_2,(short)param_2[7]);
      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /
                    (0x10 / (ulonglong)local_a0)) * 2;
      WriteBlobMSBShort(param_2,uVar21 & 0xffff);
      if ((*param_1 == 0x13) || (*param_1 == 7)) {
        local_48 = local_48 | 0x8000;
      }
      WriteBlobMSBShort(param_2,local_48);
      WriteBlobByte(param_2,local_a0);
      if (1 < local_a0) {
        local_46 = 1;
      }
      if ((*param_1 == 0x13) || (*param_1 == 7)) {
        local_46 = 2;
      }
      WriteBlobByte(param_2,local_46);
      WriteBlobMSBShort(param_2,0);
      WriteBlobByte(param_2,0);
      if (*param_1 == 0x13) {
        WriteBlobByte(param_2,1);
      }
      else if (*param_1 == 7) {
        WriteBlobByte(param_2,0);
      }
      else {
        WriteBlobByte(param_2,0xff);
      }
      WriteBlobMSBShort(param_2,0);
      if (local_a0 == 0x10) {
        WriteBlobByte(param_2,5);
        WriteBlobByte(param_2,6);
        WriteBlobByte(param_2,5);
        WriteBlobByte(param_2,0);
        WriteBlobMSBLong(param_2,0);
        local_64 = 0x18;
LAB_002607b8:
        local_60 = 0;
      }
      else {
        local_64 = 0x10;
        if (local_a0 != 8) goto LAB_002607b8;
        if ((local_48 & 0x4000) == 0) {
          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);
          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);
          RemapImage(piVar15,param_2,iVar20,param_3);
          if (0 < param_2[7]) {
            iVar19 = param_2[6];
            local_78 = (char *)0x0;
            do {
              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);
              if (iVar25 == 0) break;
              iVar19 = param_2[6];
              if (0 < iVar19) {
                iVar5 = param_2[10];
                local_d4 = 0;
                iVar6 = param_2[0xaa];
                iVar7 = param_2[0xa6];
                iVar8 = *(int *)(iVar6 + 0x40);
LAB_002618c8:
                iVar26 = iVar5;
                if (iVar8 != 0) {
                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +
                           iVar5;
                }
                dVar2 = *(double *)(iVar26 + 0x20);
                if (NAN(dVar2)) {
                  iVar22 = 0;
                  pcVar18 = &DAT_00344940;
                  do {
                    if (*pcVar18 == '\0') {
                      cVar27 = '\0';
                      if (0.0 < *(double *)(iVar26 + 0x28)) {
                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;
                        cVar27 = -1;
                        if (dVar2 < (double)DAT_002e8150) {
                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                        }
                      }
                      if (pcVar18[1] == cVar27) {
                        cVar27 = '\0';
                        if (0.0 < *(double *)(iVar26 + 0x30)) {
                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;
                          cVar27 = -1;
                          if (dVar2 < (double)DAT_002e8150) {
                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                          }
                        }
                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;
                      }
                    }
                    iVar22 = iVar22 + 1;
                    pcVar18 = pcVar18 + 3;
                  } while (iVar22 != 0x100);
                }
                else if (dVar2 <= 0.0) {
                  iVar22 = 0;
                  pcVar18 = &DAT_00344940;
                  do {
                    if (*pcVar18 == '\0') {
                      cVar27 = '\0';
                      if (0.0 < *(double *)(iVar26 + 0x28)) {
                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;
                        cVar27 = -1;
                        if (dVar2 < (double)DAT_002e8150) {
                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                        }
                      }
                      if (pcVar18[1] == cVar27) {
                        cVar27 = '\0';
                        if (0.0 < *(double *)(iVar26 + 0x30)) {
                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;
                          cVar27 = -1;
                          if (dVar2 < (double)DAT_002e8150) {
                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                          }
                        }
                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;
                      }
                    }
                    iVar22 = iVar22 + 1;
                    pcVar18 = pcVar18 + 3;
                  } while (iVar22 != 0x100);
                }
                else {
                  iVar22 = 0;
                  pcVar18 = &DAT_00344940;
                  do {
                    cVar27 = -1;
                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {
                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +
                                                  (double)DAT_002df2b8);
                    }
                    if (*pcVar18 == cVar27) {
                      cVar27 = '\0';
                      if (0.0 < *(double *)(iVar26 + 0x28)) {
                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;
                        cVar27 = -1;
                        if (dVar4 < (double)DAT_002e8150) {
                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);
                        }
                      }
                      if (pcVar18[1] == cVar27) {
                        cVar27 = '\0';
                        if (0.0 < *(double *)(iVar26 + 0x30)) {
                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;
                          cVar27 = -1;
                          if (dVar4 < (double)DAT_002e8150) {
                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);
                          }
                        }
                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;
                      }
                    }
                    iVar22 = iVar22 + 1;
                    pcVar18 = pcVar18 + 3;
                  } while (iVar22 != 0x100);
                }
                dVar2 = -1.0;
                goto LAB_00261adb;
              }
LAB_00261b09:
              local_78 = (char *)((int)local_78 + 1);
            } while ((int)local_78 < param_2[7]);
          }
          DestroyImage(iVar20);
          local_64 = 0x10;
          goto LAB_002607b8;
        }
        iVar20 = IdentifyPaletteImage(param_2,param_3);
        piVar15[3] = (iVar20 == 0) + 1;
        *piVar15 = param_2[9];
        QuantizeImage(piVar15,param_2,param_3);
        WriteBlobMSBShort(param_2,(short)param_2[9]);
        if (param_2[9] == 0) {
          local_64 = 0x12;
          goto LAB_002607b8;
        }
        iVar20 = 0;
        local_d4 = 0;
        do {
          WriteBlobByte(param_2,local_d4 & 0xff);
          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);
          uVar11 = 0;
          if (0.0 < dVar2) {
            dVar2 = dVar2 / (double)DAT_002e814c;
            uVar11 = 0xff;
            if (dVar2 < (double)DAT_002e8150) {
              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);
            }
          }
          WriteBlobByte(param_2,uVar11);
          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);
          uVar11 = 0;
          if (0.0 < dVar2) {
            dVar2 = dVar2 / (double)DAT_002e814c;
            uVar11 = 0xff;
            if (dVar2 < (double)DAT_002e8150) {
              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);
            }
          }
          WriteBlobByte(param_2,uVar11);
          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);
          uVar11 = 0;
          if (0.0 < dVar2) {
            dVar2 = dVar2 / (double)DAT_002e814c;
            uVar11 = 0xff;
            if (dVar2 < (double)DAT_002e8150) {
              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);
            }
          }
          iVar20 = iVar20 + 0x50;
          WriteBlobByte(param_2,uVar11);
          local_d4 = local_d4 + 1;
        } while (local_d4 < (uint)param_2[9]);
        local_64 = local_d4 * 4 + 0x12;
        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);
      }
      lVar32 = CONCAT44(local_60,local_64);
      if ((short)local_48 < 0) {
        WriteBlobMSBShort(param_2,0);
      }
      local_7c = (char *)0x0;
      piVar29 = param_2;
      if ((*param_1 == 7) &&
         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {
        DestroyQuantizeInfo(piVar15);
        ThrowMagickException
                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",
                   "`%s\'",param_2 + 0xc6);
        piVar15 = (int *)param_1[3];
        while (piVar9 = param_2, piVar15 != (int *)0x0) {
          piVar15 = (int *)piVar9[0xccf];
          param_2 = piVar15;
          piVar29 = piVar9;
        }
LAB_0026128c:
        CloseBlob(piVar29);
        iVar14 = 0;
        break;
      }
      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);
      if (pcVar18 == (char *)0x0) {
        if (local_7c != (char *)0x0) {
          RelinquishMagickMemory(local_7c);
        }
        DestroyQuantizeInfo(piVar15);
        ThrowMagickException
                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",
                   "`%s\'",param_2 + 0xc6);
        piVar15 = (int *)param_1[3];
        while (piVar9 = param_2, piVar15 != (int *)0x0) {
          piVar15 = (int *)piVar9[0xccf];
          param_2 = piVar15;
          piVar29 = piVar9;
        }
        goto LAB_0026128c;
      }
      if (0 < param_2[7]) {
        local_b4 = (byte)local_a0;
        iVar20 = 0;
        do {
          memset(pcVar18,0,uVar21);
          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);
          if (iVar19 == 0) break;
          local_ac = param_2[6];
          if (local_a0 == 0x10) {
            if ((int)local_ac < 1) goto LAB_0026097b;
            local_b8 = (char *)0x0;
            do {
              iVar25 = param_2[0xaa];
              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);
              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);
              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);
              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |
                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |
                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;
              if ((*(int *)(iVar25 + 0x34) != 0) &&
                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {
                local_48 = local_48 | 0x2000;
                local_94 = dVar2;
                local_8c = dVar3;
                local_84 = dVar4;
              }
              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);
              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;
              local_b8 = (char *)((int)local_b8 + 1);
              iVar19 = iVar19 + param_2[0xa6] * 8;
            } while ((int)local_b8 < param_2[6]);
            iVar19 = *param_1;
            if (iVar19 != 0x13) goto LAB_0026098a;
LAB_00260d43:
            if (0 < (int)uVar21) {
              iVar19 = 0;
              do {
                cVar27 = pcVar18[iVar19];
                iVar25 = iVar19 + 1;
                if (cVar27 == pcVar18[iVar19 + 1]) {
                  if ((int)uVar21 <= iVar25) {
                    WriteBlobByte(param_2,1);
                    WriteBlobByte(param_2,cVar27);
                    break;
                  }
                  uVar17 = 1;
                  do {
                    uVar17 = uVar17 + 1;
                    iVar25 = iVar19 + uVar17;
                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;
                  } while (iVar25 < (int)uVar21);
                }
                else {
                  uVar17 = 1;
                }
                WriteBlobByte(param_2,uVar17);
                WriteBlobByte(param_2,cVar27);
                iVar19 = iVar25;
              } while (iVar25 < (int)uVar21);
            }
          }
          else {
            uVar17 = (uint)(byte)(8 - local_45);
            local_b8 = pcVar18;
            if ((int)local_ac < 1) {
              cVar27 = '\0';
            }
            else if (local_a0 < 8) {
              uVar28 = 0;
              iVar25 = 0;
              uVar23 = uVar17;
              do {
                while( true ) {
                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {
                    dVar2 = 0.0;
                  }
                  else {
                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);
                  }
                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);
                  if (1 < param_2[9] - 1U) {
                    local_cc = (ulonglong)(param_2[9] - 1U);
                    dVar2 = dVar2 / (double)local_cc;
                  }
                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);
                  cVar27 = (char)uVar28;
                  if (uVar23 != 0) break;
                  iVar25 = iVar25 + 1;
                  *local_b8 = cVar27;
                  iVar19 = iVar19 + param_2[0xa6] * 8;
                  local_ac = param_2[6];
                  if ((int)local_ac <= iVar25) {
                    cVar27 = '\0';
                    local_b8 = local_b8 + 1;
                    goto LAB_0026095c;
                  }
                  uVar28 = 0;
                  uVar23 = uVar17;
                  local_b8 = local_b8 + 1;
                }
                iVar25 = iVar25 + 1;
                iVar19 = iVar19 + param_2[0xa6] * 8;
                local_ac = param_2[6];
                uVar23 = uVar23 - local_a0;
              } while (iVar25 < (int)local_ac);
            }
            else {
              local_b8 = (char *)param_2[0xaa];
              uVar28 = 0;
              iVar25 = 0;
              uVar23 = uVar17;
              local_9c = pcVar18;
              do {
                while( true ) {
                  if (*(int *)((int)local_b8 + 0x40) != 0) {
                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)
                                                                (iVar19 + *(int *)((int)local_b8 +
                                                                                  0x44) * 8)) <<
                                      ((byte)uVar23 & 0x1f);
                  }
                  cVar27 = (char)uVar28;
                  if (uVar23 != 0) break;
                  iVar25 = iVar25 + 1;
                  *local_9c = cVar27;
                  local_ac = param_2[6];
                  iVar19 = iVar19 + param_2[0xa6] * 8;
                  if ((int)local_ac <= iVar25) {
                    cVar27 = '\0';
                    local_b8 = local_9c + 1;
                    goto LAB_0026095c;
                  }
                  local_b8 = (char *)param_2[0xaa];
                  uVar28 = 0;
                  uVar23 = uVar17;
                  local_9c = local_9c + 1;
                }
                iVar25 = iVar25 + 1;
                iVar19 = iVar19 + param_2[0xa6] * 8;
                uVar23 = uVar23 - local_a0;
              } while (iVar25 < (int)local_ac);
              local_b8 = local_9c;
            }
LAB_0026095c:
            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {
              *local_b8 = cVar27;
            }
LAB_0026097b:
            iVar19 = *param_1;
            if (iVar19 == 0x13) goto LAB_00260d43;
LAB_0026098a:
            if (iVar19 == 7) {
              if (0 < (int)uVar21) {
                pcVar24 = pcVar18;
                uVar17 = uVar21;
                pcVar1 = local_7c;
                do {
                  uVar23 = 8;
                  if ((int)uVar17 < 9) {
                    uVar23 = uVar17;
                  }
                  if (iVar20 == 0) {
                    local_28[0] = *pcVar24;
                    if (uVar17 == 1) {
                      bVar10 = 0x80;
                    }
                    else {
                      local_28[1] = pcVar24[1];
                      if (uVar17 == 2) {
                        bVar10 = 0xc0;
                      }
                      else {
                        local_28[2] = pcVar24[2];
                        if (uVar17 == 3) {
                          bVar10 = 0xe0;
                        }
                        else {
                          local_28[3] = pcVar24[3];
                          if (uVar17 == 4) {
                            bVar10 = 0xf0;
                          }
                          else {
                            local_24 = pcVar24[4];
                            if (uVar17 == 5) {
                              bVar10 = 0xf8;
                            }
                            else {
                              local_23 = pcVar24[5];
                              if (uVar17 == 6) {
                                bVar10 = 0xfc;
                              }
                              else {
                                local_22 = pcVar24[6];
                                if ((int)uVar17 < 8) {
                                  bVar10 = 0xfe;
                                }
                                else {
                                  local_21 = pcVar24[7];
                                  bVar10 = 0xff;
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                    local_78 = local_28 + uVar23;
                  }
                  else {
                    if (*pcVar24 == *pcVar1) {
                      bVar10 = 0;
                      local_78 = local_28;
                    }
                    else {
                      bVar10 = 0x80;
                      local_78 = local_28 + 1;
                      local_28[0] = *pcVar24;
                    }
                    if (uVar17 != 1) {
                      local_b0 = local_78;
                      if (pcVar1[1] != pcVar24[1]) {
                        local_b0 = local_78 + 1;
                        bVar10 = bVar10 | 0x40;
                        *local_78 = pcVar24[1];
                      }
                      local_78 = local_b0;
                      if (uVar17 != 2) {
                        if (pcVar1[2] != pcVar24[2]) {
                          bVar10 = bVar10 | 0x20;
                          local_78 = local_b0 + 1;
                          *local_b0 = pcVar24[2];
                        }
                        if (uVar17 != 3) {
                          local_b0 = local_78;
                          if (pcVar1[3] != pcVar24[3]) {
                            local_b0 = local_78 + 1;
                            bVar10 = bVar10 | 0x10;
                            *local_78 = pcVar24[3];
                          }
                          local_78 = local_b0;
                          if (uVar17 != 4) {
                            if (pcVar1[4] != pcVar24[4]) {
                              bVar10 = bVar10 | 8;
                              local_78 = local_b0 + 1;
                              *local_b0 = pcVar24[4];
                            }
                            if (uVar17 != 5) {
                              local_b0 = local_78;
                              if (pcVar1[5] != pcVar24[5]) {
                                local_b0 = local_78 + 1;
                                bVar10 = bVar10 | 4;
                                *local_78 = pcVar24[5];
                              }
                              local_78 = local_b0;
                              if (uVar17 != 6) {
                                if (pcVar1[6] != pcVar24[6]) {
                                  bVar10 = bVar10 | 2;
                                  local_78 = local_b0 + 1;
                                  *local_b0 = pcVar24[6];
                                }
                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {
                                  bVar10 = bVar10 | 1;
                                  *local_78 = pcVar24[7];
                                  local_78 = local_78 + 1;
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                  uVar17 = uVar17 - 8;
                  WriteBlobByte(param_2,bVar10);
                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);
                  pcVar1 = pcVar1 + 8;
                  pcVar24 = pcVar24 + 8;
                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);
              }
              memcpy(local_7c,pcVar18,uVar21);
            }
            else {
              WriteBlob(param_2,uVar21,pcVar18);
            }
          }
          iVar20 = iVar20 + 1;
        } while (iVar20 < param_2[7]);
      }
      if ((local_48 & 0x2000) != 0) {
        SeekBlob(param_2,lVar31 + 6,0);
        WriteBlobMSBShort(param_2,local_48);
        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);
        WriteBlobByte(param_2,0);
      }
      if (local_a0 == 0x10) {
        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);
        WriteBlobByte(param_2,0);
        dVar2 = (double)DAT_00306a38;
        dVar4 = (double)DAT_002df8a8;
        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));
        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));
        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));
      }
      if ((short)local_48 < 0) {
        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);
        sVar13 = GetBlobSize(param_2);
        local_74._0_2_ = (short)lVar31;
        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);
      }
      RelinquishMagickMemory(pcVar18);
      if (local_7c != (char *)0x0) {
        RelinquishMagickMemory(local_7c);
      }
      iVar20 = GetNextImageInList(param_2);
      if (iVar20 == 0) goto LAB_00261e48;
      uVar21 = GetBlobSize(param_2);
      uVar21 = uVar21 & 3;
      iVar20 = 0;
      if (uVar21 != 0) {
        do {
          WriteBlobByte(param_2,0);
          bVar30 = uVar21 != 0;
          uVar21 = uVar21 - 1;
          iVar20 = iVar20 + -1 + (uint)bVar30;
        } while (iVar20 != 0 || uVar21 != 0);
      }
      SeekBlob(param_2,lVar31 + 10,0);
      iVar20 = GetBlobSize(param_2);
      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);
      lVar31 = GetBlobSize(param_2);
      uVar21 = 0;
      SeekBlob(param_2,lVar31);
      param_2 = (int *)SyncNextImageInList(param_2);
      bVar30 = 0xfffffffe < local_54;
      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);
      if ((iVar14 == 0) ||
         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))
      goto LAB_00261e48;
    } while( true );
  }
LAB_00260565:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_002decd0();
  }
  return iVar14;
LAB_00261ad3:
  dVar2 = (double)iVar22;
LAB_00261adb:
  if (iVar8 != 0) {
    *(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;
  }
  local_d4 = local_d4 + 1;
  iVar25 = iVar25 + iVar7 * 8;
  if (local_d4 == iVar19) goto LAB_00261b09;
  goto LAB_002618c8;
LAB_00261e48:
  DestroyQuantizeInfo(piVar15);
  CloseBlob(param_2);
  iVar14 = 1;
  goto LAB_00260565;
}


PUSH EBP
PUSH EDI
PUSH ESI
CALL 0x00072cf6
ADD ESI,0x1bdb78
PUSH EBX
SUB ESP,0xcc
MOV EBX,dword ptr [ESP + 0xe8]
MOV EAX,dword ptr [ESP + 0xe0]
MOV EDI,dword ptr [ESP + 0xe4]
MOV dword ptr [ESP + 0x38],EBX
MOV EBX,dword ptr GS:[0x14]
MOV dword ptr [ESP + 0xbc],EBX
XOR EBX,EBX
MOV dword ptr [ESP + 0x44],EAX
TEST EAX,EAX
JZ 0x00261f3e
CMP dword ptr [EAX + 0x31f4],0xabacadab
JNZ 0x00261f5f
TEST EDI,EDI
JZ 0x00261fa3
CMP dword ptr [EDI + 0x3344],0xabacadab
JNZ 0x00261fc4
MOV EAX,dword ptr [EDI + 0x3328]
TEST EAX,EAX
JZ 0x0026052f
LEA EAX,[EDI + 0x318]
SUB ESP,0x8
MOV EBX,ESI
PUSH EAX
LEA EAX,[ESI + 0xffed95ae]
PUSH EAX
LEA EAX,[ESI + 0xfff26918]
PUSH 0x2f2
PUSH EAX
LEA EAX,[ESI + 0xfff2688e]
PUSH EAX
PUSH 0x8000
CALL 0x000323b0
ADD ESP,0x20
MOV EBP,dword ptr [ESP + 0x38]
TEST EBP,EBP
JZ 0x00261fea
MOV EAX,dword ptr [ESP + 0x38]
CMP dword ptr [EAX + 0x1c],0xabacadab
JNZ 0x00261f1d
PUSH dword ptr [ESP + 0x38]
MOV EBX,ESI
PUSH 0x4
PUSH EDI
PUSH dword ptr [ESP + 0x50]
CALL 0x00032230
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00260584
MOV EDI,dword ptr [ESP + 0xbc]
XOR EDI,dword ptr GS:[0x14]
JNZ 0x00261fe5
ADD ESP,0xcc
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
MOV EBP,EDI
PUSH dword ptr [ESP + 0x50]
CALL 0x00033830
MOV dword ptr [ESP + 0xa0],EAX
MOV dword ptr [ESP],EDI
CALL 0x00032180
ADD ESP,0x10
XOR EBX,EBX
FLDZ
MOV dword ptr [ESP + 0x98],EAX
FST qword ptr [ESP + 0x50]
MOV word ptr [ESP + 0x94],BX
FST qword ptr [ESP + 0x58]
MOV byte ptr [ESP + 0x96],0x0
FSTP qword ptr [ESP + 0x48]
MOV dword ptr [ESP + 0x88],0x0
MOV dword ptr [ESP + 0x8c],0x0
MOV dword ptr [ESP + 0x68],0x0
MOV dword ptr [ESP + 0x6c],0x0
SUB ESP,0x4
MOV EBX,ESI
MOV EDI,dword ptr [ESP + 0x3c]
PUSH EDI
PUSH 0x17
PUSH EBP
CALL 0x00032530
ADD ESP,0xc
PUSH EDI
PUSH 0x0
PUSH EBP
CALL 0x00032090
ADD ESP,0x10
MOV EBX,0x1
MOV ECX,0x1
MOV dword ptr [ESP + 0x28],0x1
CMP EAX,0x2
JBE 0x00261dce
LEA ESI,[ESI]
ADD ECX,ECX
MOV EDX,EBX
SHL EDX,CL
CMP EDX,EAX
JC 0x00260630
MOV dword ptr [ESP + 0x28],ECX
CMP ECX,0x10
JBE 0x002612c4
MOV dword ptr [ESP + 0x3c],0x10
MOV byte ptr [ESP + 0x97],0x10
MOV dword ptr [ESP + 0x28],0x10
CMP dword ptr [EBP],0x2
JZ 0x002612a8
OR word ptr [ESP + 0x94],0x400
MOVZX EAX,word ptr [EBP + 0x18]
SUB ESP,0x8
MOV EBX,ESI
PUSH EAX
PUSH EBP
CALL 0x00032150
POP EAX
MOVZX EAX,word ptr [EBP + 0x1c]
POP EDX
PUSH EAX
PUSH EBP
CALL 0x00032150
POP ECX
MOV EAX,0x10
XOR EDX,EDX
POP EDI
DIV dword ptr [ESP + 0x30]
XOR EDX,EDX
MOV ECX,EAX
MOV EAX,dword ptr [EBP + 0x18]
LEA EAX,[ECX + EAX*0x1 + -0x1]
DIV ECX
ADD EAX,EAX
MOV dword ptr [ESP + 0x3c],EAX
MOVZX EAX,AX
PUSH EAX
PUSH EBP
CALL 0x00032150
MOV EAX,dword ptr [ESP + 0x54]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
CMP EAX,0x13
JZ 0x002611ab
CMP EAX,0x7
JZ 0x002611ab
MOVZX EAX,word ptr [ESP + 0x94]
SUB ESP,0x8
MOV EBX,ESI
MOV dword ptr [ESP + 0x8c],EAX
PUSH EAX
PUSH EBP
CALL 0x00032150
POP ECX
POP EDI
PUSH dword ptr [ESP + 0x44]
PUSH EBP
CALL 0x00032b80
ADD ESP,0x10
MOV EAX,0x1
MOVZX EBX,byte ptr [ESP + 0x96]
CMP dword ptr [ESP + 0x28],0x2
CMOVNC EBX,EAX
MOV EAX,dword ptr [ESP + 0x44]
MOV byte ptr [ESP + 0x96],BL
MOV EAX,dword ptr [EAX]
CMP EAX,0x13
JZ 0x00261199
CMP EAX,0x7
JZ 0x00261199
MOVZX EAX,BL
SUB ESP,0x8
MOV EBX,ESI
PUSH EAX
PUSH EBP
CALL 0x00032b80
POP ECX
POP EDI
PUSH 0x0
PUSH EBP
CALL 0x00032150
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032b80
MOV EAX,dword ptr [ESP + 0x54]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
CMP EAX,0x13
JZ 0x0026176b
CMP EAX,0x7
JZ 0x0026174e
SUB ESP,0x8
PUSH 0xff
PUSH EBP
CALL 0x00032b80
ADD ESP,0x10
SUB ESP,0x8
MOV EBX,ESI
PUSH 0x0
PUSH EBP
CALL 0x00032150
ADD ESP,0x10
CMP dword ptr [ESP + 0x28],0x10
JZ 0x00261788
CMP dword ptr [ESP + 0x28],0x8
MOV dword ptr [ESP + 0x78],0x10
MOV dword ptr [ESP + 0x7c],0x0
JZ 0x002612e6
CMP word ptr [ESP + 0x94],0x0
JS 0x00261538
MOV EAX,dword ptr [ESP + 0x34]
MOV dword ptr [ESP + 0x60],0x0
LEA EDI,[EAX + 0x100]
MOV EAX,dword ptr [ESP + 0x44]
CMP dword ptr [EAX],0x7
JZ 0x00261203
SUB ESP,0x8
MOV EBX,ESI
PUSH 0x1
PUSH EDI
CALL 0x000317b0
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00261e7a
MOV EDI,dword ptr [EBP + 0x1c]
TEST EDI,EDI
JLE 0x002609ca
MOVZX ECX,byte ptr [ESP + 0x28]
MOV EAX,0x1
MOV dword ptr [ESP + 0x18],0x0
SHL EAX,CL
SUB EAX,0x1
MOV dword ptr [ESP + 0x84],EAX
MOV EAX,0x8
SUB AL,byte ptr [ESP + 0x97]
MOV byte ptr [ESP + 0x80],AL
NOP
SUB ESP,0x4
MOV EBX,ESI
PUSH dword ptr [ESP + 0x38]
PUSH 0x0
PUSH dword ptr [ESP + 0x14]
CALL 0x000310a0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x40]
PUSH 0x1
PUSH dword ptr [EBP + 0x18]
PUSH dword ptr [ESP + 0x2c]
PUSH 0x0
PUSH EBP
CALL 0x00030e70
MOV dword ptr [ESP + 0x30],EAX
ADD ESP,0x20
TEST EAX,EAX
JZ 0x002609bb
MOV EDX,dword ptr [EBP + 0x18]
CMP dword ptr [ESP + 0x28],0x10
MOV EBX,EDX
JZ 0x00260ba8
MOVZX ECX,byte ptr [ESP + 0x80]
TEST EDX,EDX
MOV EAX,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x2c],ECX
JLE 0x00261184
CMP dword ptr [ESP + 0x28],0x7
JA 0x00260dda
FNSTCW word ptr [ESP + 0xa6]
MOV dword ptr [ESP + 0x24],EAX
MOV EBX,dword ptr [ESP + 0x10]
XOR EDI,EDI
XOR EDX,EDX
FILD dword ptr [ESP + 0x84]
MOVZX EAX,word ptr [ESP + 0xa6]
OR AH,0xc
MOV word ptr [ESP + 0xa4],AX
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + 0x2a8]
CMP dword ptr [EAX + 0x40],0x0
JZ 0x00260b68
MOV EAX,dword ptr [EAX + 0x44]
FLD qword ptr [EBX + EAX*0x8]
FMUL ST1
MOV EAX,dword ptr [EBP + 0x24]
SUB EAX,0x1
CMP EAX,0x1
JBE 0x00260915
MOV dword ptr [ESP + 0x10],EAX
MOV dword ptr [ESP + 0x14],0x0
FILD qword ptr [ESP + 0x10]
FDIVP
FLDCW word ptr [ESP + 0xa4]
FISTP word ptr [ESP + 0xa2]
FLDCW word ptr [ESP + 0xa6]
MOVZX EAX,word ptr [ESP + 0xa2]
MOVZX EAX,AL
SHL EAX,CL
OR EDI,EAX
TEST ECX,ECX
JZ 0x00260b70
MOV EAX,dword ptr [EBP + 0x298]
ADD EDX,0x1
SUB ECX,dword ptr [ESP + 0x3c]
LEA EBX,[EBX + EAX*0x8]
MOV EAX,dword ptr [EBP + 0x18]
CMP EAX,EDX
JG 0x002608e0
FSTP ST0
MOV EBX,EAX
MOV EAX,0x8
XOR EDX,EDX
DIV dword ptr [ESP + 0x28]
XOR EDX,EDX
MOV ECX,EAX
MOV EAX,EBX
DIV ECX
TEST EDX,EDX
JZ 0x0026097b
MOV EBX,dword ptr [ESP + 0x24]
MOV EAX,EDI
MOV byte ptr [EBX],AL
MOV EAX,dword ptr [ESP + 0x44]
MOV EAX,dword ptr [EAX]
CMP EAX,0x13
JZ 0x00260d43
CMP EAX,0x7
JZ 0x00260ec1
SUB ESP,0x4
MOV EBX,ESI
PUSH dword ptr [ESP + 0xc]
PUSH dword ptr [ESP + 0x3c]
PUSH EBP
CALL 0x00030660
ADD ESP,0x10
ADD dword ptr [ESP + 0x18],0x1
MOV EAX,dword ptr [ESP + 0x18]
CMP dword ptr [EBP + 0x1c],EAX
JG 0x00260840
MOVZX EAX,word ptr [ESP + 0x94]
MOV dword ptr [ESP + 0x84],EAX
TEST word ptr [ESP + 0x94],0x2000
JNZ 0x00261557
CMP dword ptr [ESP + 0x28],0x10
JZ 0x002615c1
CMP word ptr [ESP + 0x94],0x0
JS 0x0026170a
SUB ESP,0xc
MOV EBX,ESI
PUSH dword ptr [ESP + 0x14]
CALL 0x00033ac8
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x60]
TEST EAX,EAX
JZ 0x00260a19
SUB ESP,0xc
PUSH EAX
CALL 0x00033ac8
ADD ESP,0x10
SUB ESP,0xc
MOV EBX,ESI
PUSH EBP
CALL 0x000319e0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00261e48
SUB ESP,0xc
PUSH EBP
CALL 0x000318e0
MOV dword ptr [ESP + 0x84],0x0
AND EAX,0x3
MOV dword ptr [ESP + 0x80],EAX
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x70]
MOV ECX,dword ptr [ESP + 0x74]
TEST EDX,EDX
JZ 0x00260a8f
MOV dword ptr [ESP + 0x8],EBP
MOV EDI,EDX
MOV EBP,ECX
SUB ESP,0x8
MOV EBX,ESI
PUSH 0x0
PUSH dword ptr [ESP + 0x14]
CALL 0x00032b80
ADD EDI,-0x1
ADC EBP,-0x1
ADD ESP,0x10
MOV EDX,EBP
OR EDX,EDI
JNZ 0x00260a64
MOV dword ptr [ESP + 0x74],EBP
MOV EBP,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x70],EDI
PUSH 0x0
MOV EAX,dword ptr [ESP + 0x6c]
MOV EBX,ESI
MOV EDX,dword ptr [ESP + 0x70]
ADD EAX,0xa
ADC EDX,0x0
PUSH EDX
PUSH EAX
PUSH EBP
CALL 0x00031f00
MOV dword ptr [ESP],EBP
CALL 0x000318e0
POP EBX
MOV EBX,ESI
POP EDI
SUB EAX,dword ptr [ESP + 0x70]
SBB EDX,dword ptr [ESP + 0x74]
SHRD EAX,EDX,0x2
MOVZX EAX,AX
PUSH EAX
PUSH EBP
CALL 0x00032150
MOV dword ptr [ESP],EBP
CALL 0x000318e0
MOV dword ptr [ESP + 0x78],EAX
MOV dword ptr [ESP + 0x7c],EDX
ADD ESP,0x10
PUSH 0x0
PUSH EDX
PUSH EAX
PUSH EBP
CALL 0x00031f00
MOV dword ptr [ESP],EBP
CALL 0x00031b80
MOV ECX,dword ptr [ESP + 0x98]
MOV EBX,dword ptr [ESP + 0x9c]
MOV EBP,EAX
MOV EAX,ECX
ADD EAX,0x1
MOV EDX,EBX
ADC EDX,0x0
MOV dword ptr [ESP + 0x18],EAX
MOV dword ptr [ESP + 0x1c],EDX
POP EDI
XOR EDX,EDX
POP EAX
MOV EAX,dword ptr [ESP + 0xa0]
PUSH EDX
PUSH EAX
LEA EAX,[ESI + 0xffeee991]
PUSH EBX
MOV EBX,ESI
PUSH ECX
PUSH EAX
PUSH EBP
CALL 0x00033840
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00261e48
MOV EAX,dword ptr [ESP + 0x44]
MOV ECX,dword ptr [EAX + 0xc]
TEST ECX,ECX
JZ 0x00261e48
MOV EAX,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x88],EAX
MOV dword ptr [ESP + 0x8c],EDX
JMP 0x002605f1
FLDZ
JMP 0x002608f6
MOV ECX,dword ptr [ESP + 0x24]
ADD EDX,0x1
LEA EAX,[ECX + 0x1]
MOV dword ptr [ESP + 0x24],EAX
MOV EAX,EDI
MOV byte ptr [ECX],AL
MOV EAX,dword ptr [EBP + 0x298]
LEA EBX,[EBX + EAX*0x8]
MOV EAX,dword ptr [EBP + 0x18]
CMP EDX,EAX
JGE 0x00261167
MOV ECX,dword ptr [ESP + 0x2c]
XOR EDI,EDI
JMP 0x002608e0
TEST EDX,EDX
JLE 0x0026097b
FNSTCW word ptr [ESP + 0xa6]
MOV EDI,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x24],0x0
MOV dword ptr [ESP + 0x10],EBP
MOVZX EAX,word ptr [ESP + 0xa6]
OR AH,0xc
MOV word ptr [ESP + 0xa4],AX
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x10]
MOV EBP,dword ptr [EAX + 0x2a8]
MOV EAX,dword ptr [EBP + 0x8]
FLD qword ptr [EDI + EAX*0x8]
MOV EAX,dword ptr [EBP + 0x14]
FLD qword ptr [EDI + EAX*0x8]
MOV EAX,dword ptr [EBP + 0x20]
FLD qword ptr [EDI + EAX*0x8]
FXCH ST2
FLDCW word ptr [ESP + 0xa4]
FIST dword ptr [ESP + 0x9c]
FLDCW word ptr [ESP + 0xa6]
FXCH
MOV EAX,dword ptr [ESP + 0x9c]
FLDCW word ptr [ESP + 0xa4]
FIST dword ptr [ESP + 0x9c]
FLDCW word ptr [ESP + 0xa6]
FXCH ST2
MOV EBX,EAX
SHL EBX,0x5
SUB EBX,EAX
MOV EAX,0x80008001
IMUL EBX
MOV EAX,dword ptr [ESP + 0x9c]
FLDCW word ptr [ESP + 0xa4]
FIST dword ptr [ESP + 0x9c]
FLDCW word ptr [ESP + 0xa6]
LEA ECX,[EDX + EBX*0x1]
SAR EBX,0x1f
SAR ECX,0xf
SUB ECX,EBX
MOV EBX,ECX
MOV ECX,EAX
SHL ECX,0x6
SHL EBX,0xb
SUB ECX,EAX
MOV EAX,0x80008001
IMUL ECX
MOV EAX,dword ptr [ESP + 0x9c]
ADD EDX,ECX
SAR ECX,0x1f
SAR EDX,0xf
SUB EDX,ECX
MOV ECX,EDX
SHL ECX,0x5
OR ECX,EBX
MOV EBX,EAX
SHL EBX,0x5
SUB EBX,EAX
MOV EAX,0x80008001
IMUL EBX
MOV EAX,dword ptr [EBP + 0x34]
ADD EDX,EBX
SAR EBX,0x1f
SAR EDX,0xf
SUB EDX,EBX
OR ECX,EDX
TEST EAX,EAX
JZ 0x00260ce0
MOV EAX,dword ptr [EBP + 0x38]
FLDZ
FLD qword ptr [EDI + EAX*0x8]
FUCOMIP ST0,ST1
FSTP ST0
JP 0x00260ce8
JNZ 0x00260cf0
OR word ptr [ESP + 0x94],0x2000
FSTP qword ptr [ESP + 0x50]
FXCH
FSTP qword ptr [ESP + 0x58]
FSTP qword ptr [ESP + 0x48]
JMP 0x00260d00
FSTP ST0
FSTP ST0
FSTP ST0
JMP 0x00260d00
FSTP ST0
FSTP ST0
FSTP ST0
JMP 0x00260d00
FSTP ST0
FSTP ST0
FSTP ST0
LEA ESI,[ESI]
LEA EDI,[EDI]
MOV EBX,dword ptr [ESP + 0x24]
MOV EAX,ECX
MOV EDX,dword ptr [ESP + 0x8]
SHR AX,0x8
MOV byte ptr [EDX + EBX*0x2],AL
MOV byte ptr [EDX + EBX*0x2 + 0x1],CL
MOV EDX,dword ptr [ESP + 0x10]
ADD EBX,0x1
MOV dword ptr [ESP + 0x24],EBX
MOV EAX,dword ptr [EDX + 0x298]
CMP dword ptr [EDX + 0x18],EBX
LEA EDI,[EDI + EAX*0x8]
JG 0x00260be0
MOV EAX,dword ptr [ESP + 0x44]
MOV EBP,EDX
MOV EAX,dword ptr [EAX]
CMP EAX,0x13
JNZ 0x0026098a
MOV EAX,dword ptr [ESP + 0x34]
XOR EDI,EDI
TEST EAX,EAX
JLE 0x002609a9
MOV dword ptr [ESP + 0x10],EBP
MOV EBP,EAX
MOV ESI,ESI
LEA EDI,[EDI]
MOV EAX,dword ptr [ESP + 0x8]
MOV ECX,EDI
LEA EBX,[EAX + EDI*0x1]
MOVZX EDX,byte ptr [EBX]
LEA EDI,[EDI + 0x1]
CMP DL,byte ptr [EAX + ECX*0x1 + 0x1]
JNZ 0x0026118f
CMP EBP,EDI
JLE 0x002611c4
MOV EAX,0x1
JMP 0x00260d9b
CMP EAX,0xfe
JA 0x00260da6
CMP EDI,EBP
JGE 0x00260da6
ADD EAX,0x1
LEA EDI,[ECX + EAX*0x1]
CMP byte ptr [EBX + EAX*0x1],DL
JZ 0x00260d90
MOV byte ptr [ESP + 0x24],DL
SUB ESP,0x8
MOV EBX,ESI
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x00032b80
POP EAX
POP EDX
MOVZX EDX,byte ptr [ESP + 0x2c]
PUSH EDX
PUSH dword ptr [ESP + 0x1c]
CALL 0x00032b80
ADD ESP,0x10
CMP EBP,EDI
JG 0x00260d60
MOV EBP,dword ptr [ESP + 0x10]
JMP 0x002609a9
MOV EBX,dword ptr [EBP + 0x2a8]
MOV dword ptr [ESP + 0x40],EAX
XOR EDI,EDI
XOR EAX,EAX
MOV dword ptr [ESP + 0x30],EDX
MOV dword ptr [ESP + 0x24],EBX
MOV EBX,dword ptr [ESP + 0x24]
MOV EDX,dword ptr [EBX + 0x40]
TEST EDX,EDX
JZ 0x00260e43
MOV EBX,dword ptr [EBX + 0x44]
MOV EDX,dword ptr [ESP + 0x10]
FLD qword ptr [EDX + EBX*0x8]
FNSTCW word ptr [ESP + 0xa6]
MOVZX EBX,word ptr [ESP + 0xa6]
OR BH,0xc
MOV word ptr [ESP + 0xa4],BX
FLDCW word ptr [ESP + 0xa4]
FISTP word ptr [ESP + 0xa2]
FLDCW word ptr [ESP + 0xa6]
MOVZX EBX,word ptr [ESP + 0xa2]
MOVZX EBX,BL
SHL EBX,CL
OR EDI,EBX
TEST ECX,ECX
JZ 0x00260e78
MOV EDX,dword ptr [ESP + 0x10]
ADD EAX,0x1
MOV EBX,dword ptr [EBP + 0x298]
SUB ECX,dword ptr [ESP + 0x3c]
LEA EBX,[EDX + EBX*0x8]
MOV dword ptr [ESP + 0x10],EBX
MOV EBX,dword ptr [ESP + 0x30]
CMP EBX,EAX
JG 0x00260df0
MOV EAX,dword ptr [ESP + 0x40]
MOV dword ptr [ESP + 0x24],EAX
JMP 0x0026095c
MOV EBX,dword ptr [ESP + 0x40]
ADD EAX,0x1
LEA ECX,[EBX + 0x1]
MOV EDX,EBX
MOV EBX,EDI
MOV EDI,dword ptr [ESP + 0x10]
MOV byte ptr [EDX],BL
MOV EBX,dword ptr [EBP + 0x18]
MOV EDX,dword ptr [EBP + 0x298]
CMP EBX,EAX
MOV dword ptr [ESP + 0x30],EBX
LEA EDI,[EDI + EDX*0x8]
MOV dword ptr [ESP + 0x10],EDI
JLE 0x00261172
MOV EBX,dword ptr [EBP + 0x2a8]
MOV dword ptr [ESP + 0x40],ECX
XOR EDI,EDI
MOV ECX,dword ptr [ESP + 0x2c]
MOV dword ptr [ESP + 0x24],EBX
JMP 0x00260df0
MOV EDI,dword ptr [ESP + 0x34]
TEST EDI,EDI
JLE 0x00261135
LEA EAX,[ESP + 0xb4]
MOV ECX,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x24],EBP
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [ESP + 0x60]
LEA EDX,[EDI + -0x8]
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EDI + -0x1]
AND EAX,0xfffffff8
SUB EDX,EAX
MOV dword ptr [ESP + 0x40],EDX
JMP 0x00261076
MOV EBX,dword ptr [ESP + 0x10]
MOVZX EAX,byte ptr [ECX]
CMP AL,byte ptr [EBX]
JZ 0x00261153
MOV byte ptr [ESP + 0xb4],AL
MOV EAX,0xffffff80
LEA EBP,[ESP + 0xb5]
CMP EDI,0x1
JZ 0x00261030
MOV EDX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x2c],EBP
MOVZX EBX,byte ptr [ECX + 0x1]
CMP byte ptr [EDX + 0x1],BL
JZ 0x00260f47
ADD dword ptr [ESP + 0x2c],0x1
OR EAX,0x40
MOV byte ptr [EBP],BL
CMP EDI,0x2
JZ 0x0026115e
MOV EDX,dword ptr [ESP + 0x10]
MOVZX EBX,byte ptr [ECX + 0x2]
MOV EBP,dword ptr [ESP + 0x2c]
CMP byte ptr [EDX + 0x2],BL
JZ 0x00260f6b
MOV EDX,EBP
OR EAX,0x20
ADD EBP,0x1
MOV byte ptr [EDX],BL
CMP EDI,0x3
JZ 0x00261030
MOV EDX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x2c],EBP
MOVZX EBX,byte ptr [ECX + 0x3]
CMP byte ptr [EDX + 0x3],BL
JZ 0x00260f90
ADD dword ptr [ESP + 0x2c],0x1
OR EAX,0x10
MOV byte ptr [EBP],BL
CMP EDI,0x4
JZ 0x0026115e
MOV EDX,dword ptr [ESP + 0x10]
MOVZX EBX,byte ptr [ECX + 0x4]
MOV EBP,dword ptr [ESP + 0x2c]
CMP byte ptr [EDX + 0x4],BL
JZ 0x00260fb4
MOV EDX,EBP
OR EAX,0x8
ADD EBP,0x1
MOV byte ptr [EDX],BL
CMP EDI,0x5
JZ 0x00261030
MOV EDX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x2c],EBP
MOVZX EBX,byte ptr [ECX + 0x5]
CMP byte ptr [EDX + 0x5],BL
JZ 0x00260fd5
ADD dword ptr [ESP + 0x2c],0x1
OR EAX,0x4
MOV byte ptr [EBP],BL
CMP EDI,0x6
JZ 0x0026115e
MOV EBX,dword ptr [ESP + 0x2c]
MOVZX EBP,byte ptr [ECX + 0x6]
MOV dword ptr [ESP + 0x64],EBX
MOV EBX,dword ptr [ESP + 0x10]
MOV EDX,EBP
CMP byte ptr [EBX + 0x6],DL
JZ 0x00261003
MOV EBX,dword ptr [ESP + 0x2c]
OR EAX,0x2
ADD dword ptr [ESP + 0x64],0x1
MOV byte ptr [EBX],DL
CMP EDI,0x7
JLE 0x002617d3
MOV EBX,dword ptr [ESP + 0x10]
MOVZX EDX,byte ptr [ECX + 0x7]
MOV EBP,dword ptr [ESP + 0x64]
CMP byte ptr [EBX + 0x7],DL
JZ 0x00261030
MOV EBX,EBP
OR EAX,0x1
ADD EBP,0x1
MOV byte ptr [EBX],DL
MOV ESI,ESI
LEA EDI,[EDI]
MOV dword ptr [ESP + 0x2c],ECX
MOVZX EAX,AL
SUB ESP,0x8
MOV EBX,ESI
PUSH EAX
SUB EDI,0x8
PUSH dword ptr [ESP + 0x30]
CALL 0x00032b80
ADD ESP,0xc
MOV EAX,dword ptr [ESP + 0x34]
SUB EBP,EAX
PUSH EAX
PUSH EBP
PUSH dword ptr [ESP + 0x30]
CALL 0x00030660
MOV ECX,dword ptr [ESP + 0x3c]
ADD dword ptr [ESP + 0x20],0x8
ADD ESP,0x10
ADD ECX,0x8
CMP dword ptr [ESP + 0x40],EDI
JZ 0x00261131
MOV EBX,dword ptr [ESP + 0x18]
CMP EDI,0x8
MOV EBP,0x8
CMOVLE EBP,EDI
TEST EBX,EBX
JNZ 0x00260f00
MOVZX EAX,byte ptr [ECX]
MOV byte ptr [ESP + 0xb4],AL
CMP EDI,0x1
JZ 0x0026117d
MOVZX EAX,byte ptr [ECX + 0x1]
MOV byte ptr [ESP + 0xb5],AL
CMP EDI,0x2
JZ 0x002611ba
MOVZX EAX,byte ptr [ECX + 0x2]
MOV byte ptr [ESP + 0xb6],AL
CMP EDI,0x3
JZ 0x002611ef
MOVZX EAX,byte ptr [ECX + 0x3]
MOV byte ptr [ESP + 0xb7],AL
CMP EDI,0x4
JZ 0x002611f9
MOVZX EAX,byte ptr [ECX + 0x4]
MOV byte ptr [ESP + 0xb8],AL
CMP EDI,0x5
JZ 0x0026154d
MOVZX EAX,byte ptr [ECX + 0x5]
MOV byte ptr [ESP + 0xb9],AL
CMP EDI,0x6
JZ 0x00261761
MOVZX EAX,byte ptr [ECX + 0x6]
CMP EDI,0x7
MOV byte ptr [ESP + 0xba],AL
JLE 0x0026177e
MOVZX EAX,byte ptr [ECX + 0x7]
MOV byte ptr [ESP + 0xbb],AL
MOV EAX,0xffffffff
ADD EBP,dword ptr [ESP + 0x30]
JMP 0x00261030
MOV EBP,dword ptr [ESP + 0x24]
SUB ESP,0x4
MOV EBX,ESI
PUSH dword ptr [ESP + 0x38]
PUSH dword ptr [ESP + 0x10]
PUSH dword ptr [ESP + 0x6c]
CALL 0x00031e30
ADD ESP,0x10
JMP 0x002609a9
MOV EBP,dword ptr [ESP + 0x30]
XOR EAX,EAX
JMP 0x00260f22
MOV EBP,dword ptr [ESP + 0x2c]
JMP 0x00261030
FSTP ST0
MOV EBX,EAX
XOR EDI,EDI
JMP 0x0026095c
MOV dword ptr [ESP + 0x24],ECX
XOR EDI,EDI
JMP 0x0026095c
MOV EAX,0xffffff80
JMP 0x00261128
MOV dword ptr [ESP + 0x24],EAX
XOR EDI,EDI
JMP 0x0026095c
MOV EAX,0x1
JMP 0x00260da6
MOV EAX,0x2
MOV byte ptr [ESP + 0x96],0x2
JMP 0x00260736
OR word ptr [ESP + 0x94],0x8000
JMP 0x002606d5
MOV EAX,0xffffffc0
JMP 0x00261128
MOV EBP,dword ptr [ESP + 0x10]
MOV byte ptr [ESP + 0x24],DL
SUB ESP,0x8
MOV EBX,ESI
PUSH 0x1
PUSH EBP
CALL 0x00032b80
POP EAX
POP EDX
MOVZX EDX,byte ptr [ESP + 0x2c]
PUSH EDX
PUSH EBP
CALL 0x00032b80
ADD ESP,0x10
JMP 0x002609a9
MOV EAX,0xffffffe0
JMP 0x00261128
MOV EAX,0xfffffff0
JMP 0x00261128
SUB ESP,0x8
MOV EBX,ESI
PUSH 0x1
PUSH EDI
CALL 0x000317b0
MOV dword ptr [ESP + 0x70],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x002607e6
SUB ESP,0xc
MOV EDI,EBP
PUSH dword ptr [ESP + 0x9c]
CALL 0x00031970
LEA EAX,[EBP + 0x318]
ADD ESP,0x10
PUSH EAX
LEA EAX,[ESI + 0xffec3be0]
PUSH EAX
LEA EAX,[ESI + 0xffec156e]
PUSH EAX
LEA EAX,[ESI + 0xfff26918]
PUSH 0x190
PUSH 0x376
PUSH EAX
LEA EAX,[ESI + 0xfff2688e]
PUSH EAX
PUSH dword ptr [ESP + 0x54]
CALL 0x00032e80
ADD ESP,0x20
MOV EAX,dword ptr [ESP + 0x44]
CMP dword ptr [EAX + 0xc],0x0
JNZ 0x00261282
JMP 0x0026128c
MOV EDI,EAX
MOV EAX,dword ptr [EDI + 0x333c]
TEST EAX,EAX
JNZ 0x00261280
SUB ESP,0xc
MOV EBX,ESI
PUSH EDI
CALL 0x000311d0
ADD ESP,0x10
XOR EAX,EAX
JMP 0x00260565
CMP dword ptr [EBP + 0x24],0x100
JA 0x00261e22
OR word ptr [ESP + 0x94],0x4000
JMP 0x00260673
MOV byte ptr [ESP + 0x97],CL
MOV dword ptr [ESP + 0x3c],ECX
JNZ 0x00261f80
MOV dword ptr [ESP + 0x3c],ECX
MOV byte ptr [ESP + 0x97],0x10
JMP 0x0026065f
TEST word ptr [ESP + 0x94],0x4000
JZ 0x002617dc
SUB ESP,0x8
PUSH dword ptr [ESP + 0x40]
PUSH EBP
CALL 0x000307b0
ADD ESP,0xc
MOV EDI,dword ptr [ESP + 0x94]
TEST EAX,EAX
SETZ AL
MOVZX EAX,AL
ADD EAX,0x1
MOV dword ptr [EDI + 0xc],EAX
MOV EAX,dword ptr [EBP + 0x24]
MOV dword ptr [EDI],EAX
PUSH dword ptr [ESP + 0x3c]
PUSH EBP
PUSH EDI
CALL 0x00032ee0
POP EAX
MOVZX EAX,word ptr [EBP + 0x24]
POP EDX
PUSH EAX
PUSH EBP
CALL 0x00032150
MOV ECX,dword ptr [EBP + 0x24]
ADD ESP,0x10
TEST ECX,ECX
JZ 0x00261f08
XOR EDI,EDI
MOV dword ptr [ESP + 0x8],0x0
SUB ESP,0x8
MOV EBX,ESI
MOVZX EAX,byte ptr [ESP + 0x10]
PUSH EAX
PUSH EBP
CALL 0x00032b80
MOV EAX,dword ptr [EBP + 0x28]
ADD ESP,0x10
FLD qword ptr [EAX + EDI*0x1 + 0x20]
XOR EAX,EAX
FUCOMI ST0,ST0
JP 0x002613d2
FLDZ
FUCOMIP ST0,ST1
JNC 0x002613d6
FDIV dword ptr [ESI + 0xffeca14c]
MOV EAX,0xff
FLD dword ptr [ESI + 0xffeca150]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x002613da
FNSTCW word ptr [ESP + 0xa6]
FADD dword ptr [ESI + 0xffec12b8]
MOVZX EAX,word ptr [ESP + 0xa6]
OR AH,0xc
MOV word ptr [ESP + 0xa4],AX
FLDCW word ptr [ESP + 0xa4]
FISTP word ptr [ESP + 0xa2]
FLDCW word ptr [ESP + 0xa6]
MOVZX EAX,word ptr [ESP + 0xa2]
MOVZX EAX,AL
JMP 0x002613dc
FSTP ST0
JMP 0x002613dc
FSTP ST0
JMP 0x002613dc
FSTP ST0
SUB ESP,0x8
MOV EBX,ESI
PUSH EAX
PUSH EBP
CALL 0x00032b80
MOV EAX,dword ptr [EBP + 0x28]
ADD ESP,0x10
FLD qword ptr [EAX + EDI*0x1 + 0x28]
XOR EAX,EAX
FUCOMI ST0,ST0
JP 0x00261459
FLDZ
FUCOMIP ST0,ST1
JNC 0x0026145d
FDIV dword ptr [ESI + 0xffeca14c]
MOV EAX,0xff
FLD dword ptr [ESI + 0xffeca150]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x00261461
FNSTCW word ptr [ESP + 0xa6]
FADD dword ptr [ESI + 0xffec12b8]
MOVZX EAX,word ptr [ESP + 0xa6]
OR AH,0xc
MOV word ptr [ESP + 0xa4],AX
FLDCW word ptr [ESP + 0xa4]
FISTP word ptr [ESP + 0xa2]
FLDCW word ptr [ESP + 0xa6]
MOVZX EAX,word ptr [ESP + 0xa2]
MOVZX EAX,AL
JMP 0x00261463
FSTP ST0
JMP 0x00261463
FSTP ST0
JMP 0x00261463
FSTP ST0
SUB ESP,0x8
MOV EBX,ESI
PUSH EAX
PUSH EBP
CALL 0x00032b80
MOV EAX,dword ptr [EBP + 0x28]
ADD ESP,0x10
FLD qword ptr [EAX + EDI*0x1 + 0x30]
XOR EAX,EAX
FUCOMI ST0,ST0
JP 0x002614e0
FLDZ
FUCOMIP ST0,ST1
JNC 0x002614e4
FDIV dword ptr [ESI + 0xffeca14c]
MOV EAX,0xff
FLD dword ptr [ESI + 0xffeca150]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x002614e8
FNSTCW word ptr [ESP + 0xa6]
FADD dword ptr [ESI + 0xffec12b8]
MOVZX EAX,word ptr [ESP + 0xa6]
OR AH,0xc
MOV word ptr [ESP + 0xa4],AX
FLDCW word ptr [ESP + 0xa4]
FISTP word ptr [ESP + 0xa2]
FLDCW word ptr [ESP + 0xa6]
MOVZX EAX,word ptr [ESP + 0xa2]
MOVZX EAX,AL
JMP 0x002614ea
FSTP ST0
JMP 0x002614ea
FSTP ST0
JMP 0x002614ea
FSTP ST0
SUB ESP,0x8
MOV EBX,ESI
ADD EDI,0x50
PUSH EAX
PUSH EBP
CALL 0x00032b80
ADD dword ptr [ESP + 0x18],0x1
MOV EAX,dword ptr [ESP + 0x18]
ADD ESP,0x10
CMP dword ptr [EBP + 0x24],EAX
JA 0x00261350
MOV EAX,dword ptr [ESP + 0x8]
XOR EDX,EDX
LEA EAX,[EAX*0x4 + 0x2]
ADD EAX,0x10
ADC EDX,0x0
MOV dword ptr [ESP + 0x78],EAX
CMP word ptr [ESP + 0x94],0x0
MOV dword ptr [ESP + 0x7c],EDX
JNS 0x002607c7
SUB ESP,0x8
MOV EBX,ESI
PUSH 0x0
PUSH EBP
CALL 0x00032150
ADD ESP,0x10
JMP 0x002607c7
MOV EAX,0xfffffff8
JMP 0x00261128
PUSH 0x0
MOV EAX,dword ptr [ESP + 0x6c]
MOV EBX,ESI
MOV EDX,dword ptr [ESP + 0x70]
ADD EAX,0x6
ADC EDX,0x0
PUSH EDX
PUSH EAX
PUSH EBP
CALL 0x00031f00
POP ECX
POP EDI
PUSH dword ptr [ESP + 0x8c]
PUSH EBP
CALL 0x00032150
ADD ESP,0x10
PUSH 0x0
MOV EAX,dword ptr [ESP + 0x6c]
MOV EDX,dword ptr [ESP + 0x70]
ADD EAX,0xc
ADC EDX,0x0
PUSH EDX
PUSH EAX
PUSH EBP
CALL 0x00031f00
MOV dword ptr [ESP + 0x88],EAX
MOV dword ptr [ESP + 0x8c],EDX
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032b80
ADD ESP,0x10
CMP dword ptr [ESP + 0x28],0x10
JNZ 0x002609e5
PUSH 0x0
MOV EAX,dword ptr [ESP + 0x6c]
MOV EBX,ESI
MOV EDX,dword ptr [ESP + 0x70]
ADD EAX,0x14
ADC EDX,0x0
PUSH EDX
PUSH EAX
PUSH EBP
CALL 0x00031f00
MOV dword ptr [ESP + 0x88],EAX
MOV dword ptr [ESP + 0x8c],EDX
POP EDI
POP EAX
PUSH 0x0
PUSH EBP
CALL 0x00032b80
POP EAX
FLD dword ptr [ESI + 0xffee8a38]
POP EDX
FLD qword ptr [ESP + 0x50]
FMUL ST1
FXCH
FNSTCW word ptr [ESP + 0xae]
MOVZX EAX,word ptr [ESP + 0xae]
FSTP qword ptr [ESP + 0x20]
FLD dword ptr [ESI + 0xffec18a8]
FDIV ST1,ST0
OR AH,0xc
MOV word ptr [ESP + 0xac],AX
FSTP qword ptr [ESP + 0x18]
FLDCW word ptr [ESP + 0xac]
FISTP word ptr [ESP + 0xaa]
FLDCW word ptr [ESP + 0xae]
MOVZX EAX,word ptr [ESP + 0xaa]
MOVZX EAX,AL
PUSH EAX
PUSH EBP
CALL 0x00032b80
POP ECX
POP EDI
FLD qword ptr [ESP + 0x60]
FMUL dword ptr [ESI + 0xffeef3a4]
FNSTCW word ptr [ESP + 0xae]
FLD qword ptr [ESP + 0x18]
MOVZX EAX,word ptr [ESP + 0xae]
FDIVP
OR AH,0xc
MOV word ptr [ESP + 0xac],AX
FLDCW word ptr [ESP + 0xac]
FISTP word ptr [ESP + 0xaa]
FLDCW word ptr [ESP + 0xae]
MOVZX EAX,word ptr [ESP + 0xaa]
MOVZX EAX,AL
PUSH EAX
PUSH EBP
CALL 0x00032b80
POP EAX
POP EDX
FLD qword ptr [ESP + 0x20]
FMUL qword ptr [ESP + 0x58]
FNSTCW word ptr [ESP + 0xae]
FLD qword ptr [ESP + 0x18]
MOVZX EAX,word ptr [ESP + 0xae]
FDIVP
OR AH,0xc
MOV word ptr [ESP + 0xac],AX
FLDCW word ptr [ESP + 0xac]
FISTP word ptr [ESP + 0xaa]
FLDCW word ptr [ESP + 0xae]
MOVZX EAX,word ptr [ESP + 0xaa]
MOVZX EAX,AL
PUSH EAX
PUSH EBP
CALL 0x00032b80
ADD ESP,0x10
CMP word ptr [ESP + 0x94],0x0
JNS 0x002609f4
PUSH 0x0
MOV EAX,dword ptr [ESP + 0x7c]
MOV EBX,ESI
ADD EAX,dword ptr [ESP + 0x6c]
MOV EDX,dword ptr [ESP + 0x80]
ADC EDX,dword ptr [ESP + 0x70]
PUSH EDX
PUSH EAX
PUSH EBP
CALL 0x00031f00
MOV dword ptr [ESP],EBP
MOV EDI,EAX
CALL 0x000318e0
POP EDX
POP ECX
SUB AX,word ptr [ESP + 0x70]
SUB EAX,EDI
MOVZX EAX,AX
PUSH EAX
PUSH EBP
CALL 0x00032150
ADD ESP,0x10
JMP 0x002609f4
SUB ESP,0x8
PUSH 0x0
PUSH EBP
CALL 0x00032b80
ADD ESP,0x10
JMP 0x00260782
MOV EAX,0xfffffffc
JMP 0x00261128
SUB ESP,0x8
PUSH 0x1
PUSH EBP
CALL 0x00032b80
ADD ESP,0x10
JMP 0x00260782
MOV EAX,0xfffffffe
JMP 0x00261128
SUB ESP,0x8
PUSH 0x5
PUSH EBP
CALL 0x00032b80
POP EDI
POP EAX
PUSH 0x6
PUSH EBP
CALL 0x00032b80
POP EAX
POP EDX
PUSH 0x5
PUSH EBP
CALL 0x00032b80
POP ECX
POP EDI
PUSH 0x0
PUSH EBP
CALL 0x00032b80
POP EAX
POP EDX
PUSH 0x0
PUSH EBP
CALL 0x00032030
ADD ESP,0x10
MOV dword ptr [ESP + 0x78],0x18
MOV dword ptr [ESP + 0x7c],0x0
JMP 0x002607b8
MOV EBP,dword ptr [ESP + 0x64]
JMP 0x00261030
LEA EAX,[ESI + 0xfff26940]
SUB ESP,0x8
MOV EDI,dword ptr [ESP + 0x40]
PUSH EDI
MOV dword ptr [ESP + 0x4c],EAX
PUSH EAX
LEA EAX,[ESI + 0xffeeef12]
PUSH 0x1
PUSH EAX
PUSH 0x1
PUSH 0x100
CALL 0x000308e0
MOV dword ptr [ESP + 0x98],EAX
ADD ESP,0x1c
MOV dword ptr [ESP + 0x3c],EDI
PUSH EDI
MOV EDI,EAX
PUSH dword ptr [EAX + 0x4]
PUSH EAX
CALL 0x00032530
ADD ESP,0x10
PUSH dword ptr [ESP + 0x38]
PUSH EDI
PUSH EBP
PUSH dword ptr [ESP + 0x9c]
CALL 0x00032350
MOV EAX,dword ptr [EBP + 0x1c]
ADD ESP,0x10
TEST EAX,EAX
JLE 0x00261b24
MOV EAX,dword ptr [EBP + 0x18]
MOV dword ptr [ESP + 0x64],0x0
MOV dword ptr [ESP + 0x80],EBP
MOV dword ptr [ESP + 0x18],EAX
SUB ESP,0x8
MOV EBX,ESI
PUSH dword ptr [ESP + 0x40]
PUSH 0x1
PUSH dword ptr [ESP + 0x28]
PUSH dword ptr [ESP + 0x78]
PUSH 0x0
MOV EDI,dword ptr [ESP + 0x9c]
PUSH EDI
CALL 0x00033610
ADD ESP,0x20
MOV EBP,EAX
TEST EAX,EAX
JZ 0x00261e6e
MOV EAX,EDI
MOV EDI,dword ptr [EDI + 0x18]
TEST EDI,EDI
MOV dword ptr [ESP + 0x18],EDI
JLE 0x00261b09
MOV EDI,dword ptr [EAX + 0x28]
MOV dword ptr [ESP + 0x8],0x0
MOV dword ptr [ESP + 0x24],EDI
MOV EDI,dword ptr [EAX + 0x2a8]
MOV EAX,dword ptr [EAX + 0x298]
MOV dword ptr [ESP + 0x2c],EDI
MOV EDI,dword ptr [EDI + 0x40]
SHL EAX,0x3
MOV dword ptr [ESP + 0x30],EAX
MOV dword ptr [ESP + 0x10],EDI
LEA ESI,[ESI]
MOV EDI,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [ESP + 0x10]
MOV EBX,EDI
TEST EAX,EAX
JZ 0x0026191f
MOV EAX,dword ptr [ESP + 0x2c]
MOV EAX,dword ptr [EAX + 0x44]
FLD qword ptr [EBP + EAX*0x8]
FNSTCW word ptr [ESP + 0xa6]
MOVZX EAX,word ptr [ESP + 0xa6]
OR AH,0xc
MOV word ptr [ESP + 0xa4],AX
FLDCW word ptr [ESP + 0xa4]
FISTP dword ptr [ESP + 0x9c]
FLDCW word ptr [ESP + 0xa6]
MOV EAX,dword ptr [ESP + 0x9c]
LEA EBX,[EAX + EAX*0x4]
SHL EBX,0x4
ADD EBX,EDI
FLD qword ptr [EBX + 0x20]
FUCOMI ST0,ST0
JP 0x00261c9e
FLDZ
MOV EDX,dword ptr [ESP + 0x40]
FUCOMIP ST0,ST1
JNC 0x00261b60
FDIV dword ptr [ESI + 0xffeca14c]
XOR EAX,EAX
JMP 0x00261959
ADD EAX,0x1
ADD EDX,0x3
CMP EAX,0x100
JZ 0x00261b50
FLD dword ptr [ESI + 0xffeca150]
FXCH
MOV ECX,0xffffffff
FUCOMI ST0,ST1
FSTP ST1
JNC 0x002619ab
FNSTCW word ptr [ESP + 0xa6]
FLD ST0
FADD dword ptr [ESI + 0xffec12b8]
MOVZX ECX,word ptr [ESP + 0xa6]
OR CH,0xc
MOV word ptr [ESP + 0xa4],CX
FLDCW word ptr [ESP + 0xa4]
FISTP word ptr [ESP + 0xa2]
FLDCW word ptr [ESP + 0xa6]
MOVZX ECX,word ptr [ESP + 0xa2]
CMP byte ptr [EDX],CL
JNZ 0x00261948
FLD qword ptr [EBX + 0x28]
XOR ECX,ECX
FUCOMI ST0,ST0
JP 0x00261a20
FLDZ
FUCOMIP ST0,ST1
JNC 0x00261a28
FDIV dword ptr [ESI + 0xffeca14c]
MOV ECX,0xffffffff
FLD dword ptr [ESI + 0xffeca150]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x00261a30
FNSTCW word ptr [ESP + 0xa6]
FADD dword ptr [ESI + 0xffec12b8]
MOVZX ECX,word ptr [ESP + 0xa6]
OR CH,0xc
MOV word ptr [ESP + 0xa4],CX
FLDCW word ptr [ESP + 0xa4]
FISTP word ptr [ESP + 0xa2]
FLDCW word ptr [ESP + 0xa6]
MOVZX ECX,word ptr [ESP + 0xa2]
JMP 0x00261a38
FSTP ST0
JMP 0x00261a38
FSTP ST0
JMP 0x00261a38
FSTP ST0
LEA ESI,[ESI]
CMP byte ptr [EDX + 0x1],CL
JNZ 0x00261948
FLD qword ptr [EBX + 0x30]
XOR ECX,ECX
FUCOMI ST0,ST0
JP 0x00261ab0
FLDZ
FUCOMIP ST0,ST1
JNC 0x00261ab8
FDIV dword ptr [ESI + 0xffeca14c]
MOV ECX,0xffffffff
FLD dword ptr [ESI + 0xffeca150]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x00261ac0
FNSTCW word ptr [ESP + 0xa6]
FADD dword ptr [ESI + 0xffec12b8]
MOVZX ECX,word ptr [ESP + 0xa6]
OR CH,0xc
MOV word ptr [ESP + 0xa4],CX
FLDCW word ptr [ESP + 0xa4]
FISTP word ptr [ESP + 0xa2]
FLDCW word ptr [ESP + 0xa6]
MOVZX ECX,word ptr [ESP + 0xa2]
JMP 0x00261ac8
FSTP ST0
JMP 0x00261ac8
FSTP ST0
JMP 0x00261ac8
FSTP ST0
LEA ESI,[ESI]
CMP byte ptr [EDX + 0x2],CL
JNZ 0x00261948
FSTP ST0
MOV dword ptr [ESP + 0x60],EAX
FILD dword ptr [ESP + 0x60]
MOV EAX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JZ 0x00261af0
MOV EAX,dword ptr [ESP + 0x2c]
MOV EAX,dword ptr [EAX + 0x44]
FSTP qword ptr [EBP + EAX*0x8]
JMP 0x00261af2
FSTP ST0
ADD dword ptr [ESP + 0x8],0x1
ADD EBP,dword ptr [ESP + 0x30]
MOV EAX,dword ptr [ESP + 0x8]
CMP EAX,dword ptr [ESP + 0x18]
JNZ 0x002618c8
MOV EDI,dword ptr [ESP + 0x80]
ADD dword ptr [ESP + 0x64],0x1
MOV EAX,dword ptr [ESP + 0x64]
CMP dword ptr [EDI + 0x1c],EAX
JG 0x00261857
MOV EBP,EDI
SUB ESP,0xc
MOV EBX,ESI
PUSH dword ptr [ESP + 0x84]
CALL 0x00032dd0
ADD ESP,0x10
MOV dword ptr [ESP + 0x78],0x10
MOV dword ptr [ESP + 0x7c],0x0
JMP 0x002607b8
FSTP ST0
FLD1
FCHS
JMP 0x00261adb
FSTP ST0
XOR EAX,EAX
MOV EDI,EBX
JMP 0x00261b7d
ADD EAX,0x1
ADD EDX,0x3
CMP EAX,0x100
JZ 0x00261b52
MOVZX ECX,byte ptr [EDX]
TEST CL,CL
JNZ 0x00261b70
FLD qword ptr [EDI + 0x28]
XOR EBX,EBX
FUCOMI ST0,ST0
JP 0x00261bf0
FLDZ
FUCOMIP ST0,ST1
JNC 0x00261bf8
FDIV dword ptr [ESI + 0xffeca14c]
MOV EBX,0xffffffff
FLD dword ptr [ESI + 0xffeca150]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x00261c00
FNSTCW word ptr [ESP + 0xa6]
FADD dword ptr [ESI + 0xffec12b8]
MOVZX EBX,word ptr [ESP + 0xa6]
OR BH,0xc
MOV word ptr [ESP + 0xa4],BX
FLDCW word ptr [ESP + 0xa4]
FISTP word ptr [ESP + 0xa2]
FLDCW word ptr [ESP + 0xa6]
MOVZX EBX,word ptr [ESP + 0xa2]
JMP 0x00261c08
FSTP ST0
JMP 0x00261c08
FSTP ST0
JMP 0x00261c08
FSTP ST0
LEA ESI,[ESI]
CMP byte ptr [EDX + 0x1],BL
JNZ 0x00261b70
FLD qword ptr [EDI + 0x30]
FUCOMI ST0,ST0
JP 0x00261c76
FLDZ
FUCOMIP ST0,ST1
JNC 0x00261c80
FDIV dword ptr [ESI + 0xffeca14c]
MOV ECX,0xffffffff
FLD dword ptr [ESI + 0xffeca150]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x00261c88
FNSTCW word ptr [ESP + 0xa6]
FADD dword ptr [ESI + 0xffec12b8]
MOVZX ECX,word ptr [ESP + 0xa6]
OR CH,0xc
MOV word ptr [ESP + 0xa4],CX
FLDCW word ptr [ESP + 0xa4]
FISTP word ptr [ESP + 0xa2]
FLDCW word ptr [ESP + 0xa6]
MOVZX ECX,word ptr [ESP + 0xa2]
JMP 0x00261c90
FSTP ST0
JMP 0x00261c90
FSTP ST0
JMP 0x00261c90
FSTP ST0
LEA ESI,[ESI]
CMP byte ptr [EDX + 0x2],CL
JNZ 0x00261b70
JMP 0x00261ad3
FSTP ST0
MOV EDX,dword ptr [ESP + 0x40]
XOR EAX,EAX
MOV EDI,EBX
JMP 0x00261cc1
ADD EAX,0x1
ADD EDX,0x3
CMP EAX,0x100
JZ 0x00261b52
MOVZX ECX,byte ptr [EDX]
TEST CL,CL
JNZ 0x00261cb0
FLD qword ptr [EDI + 0x28]
XOR EBX,EBX
FUCOMI ST0,ST0
JP 0x00261d2f
FLDZ
FUCOMIP ST0,ST1
JNC 0x00261d38
FDIV dword ptr [ESI + 0xffeca14c]
MOV EBX,0xffffffff
FLD dword ptr [ESI + 0xffeca150]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x00261d40
FNSTCW word ptr [ESP + 0xa6]
FADD dword ptr [ESI + 0xffec12b8]
MOVZX EBX,word ptr [ESP + 0xa6]
OR BH,0xc
MOV word ptr [ESP + 0xa4],BX
FLDCW word ptr [ESP + 0xa4]
FISTP word ptr [ESP + 0xa2]
FLDCW word ptr [ESP + 0xa6]
MOVZX EBX,word ptr [ESP + 0xa2]
JMP 0x00261d48
FSTP ST0
JMP 0x00261d48
FSTP ST0
JMP 0x00261d48
FSTP ST0
LEA ESI,[ESI]
CMP byte ptr [EDX + 0x1],BL
JNZ 0x00261cb0
FLD qword ptr [EDI + 0x30]
FUCOMI ST0,ST0
JP 0x00261db6
FLDZ
FUCOMIP ST0,ST1
JNC 0x00261dba
FDIV dword ptr [ESI + 0xffeca14c]
MOV ECX,0xffffffff
FLD dword ptr [ESI + 0xffeca150]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x00261dbe
FNSTCW word ptr [ESP + 0xa6]
FADD dword ptr [ESI + 0xffec12b8]
MOVZX ECX,word ptr [ESP + 0xa6]
OR CH,0xc
MOV word ptr [ESP + 0xa4],CX
FLDCW word ptr [ESP + 0xa4]
FISTP word ptr [ESP + 0xa2]
FLDCW word ptr [ESP + 0xa6]
MOVZX ECX,word ptr [ESP + 0xa2]
JMP 0x00261dc0
FSTP ST0
JMP 0x00261dc0
FSTP ST0
JMP 0x00261dc0
FSTP ST0
CMP byte ptr [EDX + 0x2],CL
JNZ 0x00261cb0
JMP 0x00261ad3
SUB ESP,0x4
MOV EBX,ESI
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [EBP + 0x4]
PUSH EBP
CALL 0x00032530
ADD ESP,0x10
MOV dword ptr [ESP + 0x3c],0x1
MOV byte ptr [ESP + 0x97],0x1
SUB ESP,0x4
MOV EBX,ESI
MOV EDI,dword ptr [ESP + 0x3c]
PUSH EDI
PUSH 0x3
PUSH EBP
CALL 0x00032530
ADD ESP,0xc
PUSH EDI
PUSH 0x4
PUSH EBP
CALL 0x00032510
POP EAX
POP EDX
PUSH EDI
PUSH EBP
CALL 0x00033070
ADD ESP,0x10
JMP 0x0026065f
SUB ESP,0x4
MOV EBX,ESI
PUSH dword ptr [ESP + 0x3c]
PUSH 0x1
PUSH EBP
CALL 0x00030bc0
ADD ESP,0x10
CMP dword ptr [EBP],0x2
JZ 0x002612b5
JMP 0x00260669
SUB ESP,0xc
MOV EBX,ESI
PUSH dword ptr [ESP + 0x9c]
CALL 0x00031970
MOV dword ptr [ESP],EBP
CALL 0x000311d0
ADD ESP,0x10
MOV EAX,0x1
JMP 0x00260565
MOV EBP,dword ptr [ESP + 0x80]
JMP 0x00261b24
MOV EAX,dword ptr [ESP + 0x60]
MOV EDI,EBP
TEST EAX,EAX
JZ 0x00261e90
SUB ESP,0xc
PUSH EAX
CALL 0x00033ac8
ADD ESP,0x10
SUB ESP,0xc
MOV EBX,ESI
PUSH dword ptr [ESP + 0x9c]
CALL 0x00031970
LEA EAX,[EDI + 0x318]
ADD ESP,0x10
PUSH EAX
LEA EAX,[ESI + 0xffec3be0]
PUSH EAX
LEA EAX,[ESI + 0xffec156e]
PUSH EAX
LEA EAX,[ESI + 0xfff26918]
PUSH 0x190
PUSH 0x380
PUSH EAX
LEA EAX,[ESI + 0xfff2688e]
PUSH EAX
PUSH dword ptr [ESP + 0x54]
CALL 0x00032e80
ADD ESP,0x20
MOV EAX,dword ptr [ESP + 0x44]
MOV EBX,dword ptr [EAX + 0xc]
TEST EBX,EBX
JNZ 0x00261ef2
JMP 0x0026128c
MOV EDI,EAX
MOV EAX,dword ptr [EDI + 0x333c]
TEST EAX,EAX
JNZ 0x00261ef0
JMP 0x0026128c
MOV dword ptr [ESP + 0x78],0x12
MOV dword ptr [ESP + 0x7c],0x0
JMP 0x002607b8
LEA EAX,[ESI + 0xfff26928]
MOV EBX,ESI
PUSH EAX
LEA EAX,[ESI + 0xfff2688e]
PUSH 0x2f4
PUSH EAX
LEA EAX,[ESI + 0xffec29d4]
PUSH EAX
CALL 0x000313d0
LEA EAX,[ESI + 0xfff26928]
MOV EBX,ESI
PUSH EAX
LEA EAX,[ESI + 0xfff2688e]
PUSH 0x2ed
PUSH EAX
LEA EAX,[ESI + 0xffec0d20]
PUSH EAX
CALL 0x000313d0
LEA EAX,[ESI + 0xfff26928]
MOV EBX,ESI
PUSH EAX
LEA EAX,[ESI + 0xfff2688e]
PUSH 0x2ee
PUSH EAX
LEA EAX,[ESI + 0xffec0d48]
PUSH EAX
CALL 0x000313d0
MOV EBX,ESI
PUSH ECX
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [EBP + 0x4]
PUSH EBP
CALL 0x00032530
ADD ESP,0x10
CMP dword ptr [ESP + 0x28],0x7
JBE 0x00261df3
JMP 0x0026065f
LEA EAX,[ESI + 0xfff26928]
MOV EBX,ESI
PUSH EAX
LEA EAX,[ESI + 0xfff2688e]
PUSH 0x2ef
PUSH EAX
LEA EAX,[ESI + 0xffed9cf4]
PUSH EAX
CALL 0x000313d0
LEA EAX,[ESI + 0xfff26928]
MOV EBX,ESI
PUSH EAX
LEA EAX,[ESI + 0xfff2688e]
PUSH 0x2f0
PUSH EAX
LEA EAX,[ESI + 0xffecc4b8]
PUSH EAX
CALL 0x000313d0
CALL 0x002decd0
LEA EAX,[ESI + 0xfff26928]
MOV EBX,ESI
PUSH EAX
LEA EAX,[ESI + 0xfff2688e]
PUSH 0x2f3
PUSH EAX
LEA EAX,[ESI + 0xffec1be4]
PUSH EAX
CALL 0x000313d0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nint FUN_00260480(int *param_1,int *param_2,uint param_3)\n\n{\n  char *pcVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  byte bVar10;\n  undefined1 uVar11;\n  short sVar12;\n  short sVar13;\n  int iVar14;\n  int *piVar15;\n  undefined4 uVar16;\n  uint uVar17;\n  char *pcVar18;\n  int iVar19;\n  int iVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  char *pcVar24;\n  int iVar25;\n  int iVar26;\n  char cVar27;\n  uint uVar28;\n  int *piVar29;\n  int in_GS_OFFSET;\n  bool bVar30;\n  longlong lVar31;\n  longlong lVar32;\n  uint local_d4;\n  ulonglong local_cc;\n  char *local_b8;\n  byte local_b4;\n  char *local_b0;\n  uint local_ac;\n  uint local_a0;\n  char *local_9c;\n  double local_94;\n  double local_8c;\n  double local_84;\n  char *local_7c;\n  char *local_78;\n  int local_74;\n  int local_64;\n  uint local_60;\n  uint local_54;\n  int local_50;\n  ushort local_48;\n  undefined1 local_46;\n  byte local_45;\n  char local_28 [4];\n  char local_24;\n  char local_23;\n  char local_22;\n  char local_21;\n  int local_20;\n  \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/palm.c",0x2ed,"WritePALMImage");\n  }\n  if (param_1[0xc7d] != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage");\n  }\n  if (param_2 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");\n  }\n  if (param_2[0xcd1] != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");\n  }\n  if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6);\n  }\n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");\n  }\n  if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage");\n  }\n  uVar21 = param_3;\n  iVar14 = OpenBlob(param_1,param_2,4,param_3);\n  if (iVar14 != 0) {\n    piVar15 = (int *)AcquireQuantizeInfo(param_1);\n    uVar16 = GetImageListLength(param_2);\n    local_8c = 0.0;\n    local_48 = 0;\n    local_84 = 0.0;\n    local_46 = 0;\n    local_94 = 0.0;\n    local_54 = 0;\n    local_50 = 0;\n    lVar31 = 0;\n    do {\n      local_74 = (int)lVar31;\n      iVar14 = local_74;\n      TransformImageColorspace(param_2,0x17,param_3);\n      uVar17 = GetNumberColors(param_2,0,param_3);\n      local_a0 = 1;\n      if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(param_2,(short)param_2[6]);\n      WriteBlobMSBShort(param_2,(short)param_2[7]);\n      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(param_2,uVar21 & 0xffff);\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(param_2,local_48);\n      WriteBlobByte(param_2,local_a0);\n      if (1 < local_a0) {\n        local_46 = 1;\n      }\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }\n      WriteBlobByte(param_2,local_46);\n      WriteBlobMSBShort(param_2,0);\n      WriteBlobByte(param_2,0);\n      if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }\n      WriteBlobMSBShort(param_2,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }\n      lVar32 = CONCAT44(local_60,local_64);\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }\n      local_7c = (char *)0x0;\n      piVar29 = param_2;\n      if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }\n      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);\n      if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }\n      if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }\n      if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }\n      RelinquishMagickMemory(pcVar18);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      iVar20 = GetNextImageInList(param_2);\n      if (iVar20 == 0) goto LAB_00261e48;\n      uVar21 = GetBlobSize(param_2);\n      uVar21 = uVar21 & 3;\n      iVar20 = 0;\n      if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }\n      SeekBlob(param_2,lVar31 + 10,0);\n      iVar20 = GetBlobSize(param_2);\n      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);\n      lVar31 = GetBlobSize(param_2);\n      uVar21 = 0;\n      SeekBlob(param_2,lVar31);\n      param_2 = (int *)SyncNextImageInList(param_2);\n      bVar30 = 0xfffffffe < local_54;\n      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);\n      if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;\n    } while( true );\n  }\nLAB_00260565:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002decd0();\n  }\n  return iVar14;\nLAB_00261ad3:\n  dVar2 = (double)iVar22;\nLAB_00261adb:\n  if (iVar8 != 0) {\n    *(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;\n  }\n  local_d4 = local_d4 + 1;\n  iVar25 = iVar25 + iVar7 * 8;\n  if (local_d4 == iVar19) goto LAB_00261b09;\n  goto LAB_002618c8;\nLAB_00261e48:\n  DestroyQuantizeInfo(piVar15);\n  CloseBlob(param_2);\n  iVar14 = 1;\n  goto LAB_00260565;\n}\n\n" comment (function_definition "int FUN_00260480(int *param_1,int *param_2,uint param_3)\n\n{\n  char *pcVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  byte bVar10;\n  undefined1 uVar11;\n  short sVar12;\n  short sVar13;\n  int iVar14;\n  int *piVar15;\n  undefined4 uVar16;\n  uint uVar17;\n  char *pcVar18;\n  int iVar19;\n  int iVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  char *pcVar24;\n  int iVar25;\n  int iVar26;\n  char cVar27;\n  uint uVar28;\n  int *piVar29;\n  int in_GS_OFFSET;\n  bool bVar30;\n  longlong lVar31;\n  longlong lVar32;\n  uint local_d4;\n  ulonglong local_cc;\n  char *local_b8;\n  byte local_b4;\n  char *local_b0;\n  uint local_ac;\n  uint local_a0;\n  char *local_9c;\n  double local_94;\n  double local_8c;\n  double local_84;\n  char *local_7c;\n  char *local_78;\n  int local_74;\n  int local_64;\n  uint local_60;\n  uint local_54;\n  int local_50;\n  ushort local_48;\n  undefined1 local_46;\n  byte local_45;\n  char local_28 [4];\n  char local_24;\n  char local_23;\n  char local_22;\n  char local_21;\n  int local_20;\n  \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/palm.c",0x2ed,"WritePALMImage");\n  }\n  if (param_1[0xc7d] != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage");\n  }\n  if (param_2 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");\n  }\n  if (param_2[0xcd1] != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");\n  }\n  if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6);\n  }\n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");\n  }\n  if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage");\n  }\n  uVar21 = param_3;\n  iVar14 = OpenBlob(param_1,param_2,4,param_3);\n  if (iVar14 != 0) {\n    piVar15 = (int *)AcquireQuantizeInfo(param_1);\n    uVar16 = GetImageListLength(param_2);\n    local_8c = 0.0;\n    local_48 = 0;\n    local_84 = 0.0;\n    local_46 = 0;\n    local_94 = 0.0;\n    local_54 = 0;\n    local_50 = 0;\n    lVar31 = 0;\n    do {\n      local_74 = (int)lVar31;\n      iVar14 = local_74;\n      TransformImageColorspace(param_2,0x17,param_3);\n      uVar17 = GetNumberColors(param_2,0,param_3);\n      local_a0 = 1;\n      if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(param_2,(short)param_2[6]);\n      WriteBlobMSBShort(param_2,(short)param_2[7]);\n      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(param_2,uVar21 & 0xffff);\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(param_2,local_48);\n      WriteBlobByte(param_2,local_a0);\n      if (1 < local_a0) {\n        local_46 = 1;\n      }\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }\n      WriteBlobByte(param_2,local_46);\n      WriteBlobMSBShort(param_2,0);\n      WriteBlobByte(param_2,0);\n      if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }\n      WriteBlobMSBShort(param_2,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }\n      lVar32 = CONCAT44(local_60,local_64);\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }\n      local_7c = (char *)0x0;\n      piVar29 = param_2;\n      if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }\n      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);\n      if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }\n      if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }\n      if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }\n      RelinquishMagickMemory(pcVar18);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      iVar20 = GetNextImageInList(param_2);\n      if (iVar20 == 0) goto LAB_00261e48;\n      uVar21 = GetBlobSize(param_2);\n      uVar21 = uVar21 & 3;\n      iVar20 = 0;\n      if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }\n      SeekBlob(param_2,lVar31 + 10,0);\n      iVar20 = GetBlobSize(param_2);\n      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);\n      lVar31 = GetBlobSize(param_2);\n      uVar21 = 0;\n      SeekBlob(param_2,lVar31);\n      param_2 = (int *)SyncNextImageInList(param_2);\n      bVar30 = 0xfffffffe < local_54;\n      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);\n      if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;\n    } while( true );\n  }\nLAB_00260565:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002decd0();\n  }\n  return iVar14;\nLAB_00261ad3:\n  dVar2 = (double)iVar22;\nLAB_00261adb:\n  if (iVar8 != 0) {\n    *(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;\n  }\n  local_d4 = local_d4 + 1;\n  iVar25 = iVar25 + iVar7 * 8;\n  if (local_d4 == iVar19) goto LAB_00261b09;\n  goto LAB_002618c8;\nLAB_00261e48:\n  DestroyQuantizeInfo(piVar15);\n  CloseBlob(param_2);\n  iVar14 = 1;\n  goto LAB_00260565;\n}" primitive_type (function_declarator "FUN_00260480(int *param_1,int *param_2,uint param_3)" identifier (parameter_list "(int *param_1,int *param_2,uint 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 "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  char *pcVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  byte bVar10;\n  undefined1 uVar11;\n  short sVar12;\n  short sVar13;\n  int iVar14;\n  int *piVar15;\n  undefined4 uVar16;\n  uint uVar17;\n  char *pcVar18;\n  int iVar19;\n  int iVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  char *pcVar24;\n  int iVar25;\n  int iVar26;\n  char cVar27;\n  uint uVar28;\n  int *piVar29;\n  int in_GS_OFFSET;\n  bool bVar30;\n  longlong lVar31;\n  longlong lVar32;\n  uint local_d4;\n  ulonglong local_cc;\n  char *local_b8;\n  byte local_b4;\n  char *local_b0;\n  uint local_ac;\n  uint local_a0;\n  char *local_9c;\n  double local_94;\n  double local_8c;\n  double local_84;\n  char *local_7c;\n  char *local_78;\n  int local_74;\n  int local_64;\n  uint local_60;\n  uint local_54;\n  int local_50;\n  ushort local_48;\n  undefined1 local_46;\n  byte local_45;\n  char local_28 [4];\n  char local_24;\n  char local_23;\n  char local_22;\n  char local_21;\n  int local_20;\n  \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/palm.c",0x2ed,"WritePALMImage");\n  }\n  if (param_1[0xc7d] != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage");\n  }\n  if (param_2 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");\n  }\n  if (param_2[0xcd1] != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");\n  }\n  if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6);\n  }\n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");\n  }\n  if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage");\n  }\n  uVar21 = param_3;\n  iVar14 = OpenBlob(param_1,param_2,4,param_3);\n  if (iVar14 != 0) {\n    piVar15 = (int *)AcquireQuantizeInfo(param_1);\n    uVar16 = GetImageListLength(param_2);\n    local_8c = 0.0;\n    local_48 = 0;\n    local_84 = 0.0;\n    local_46 = 0;\n    local_94 = 0.0;\n    local_54 = 0;\n    local_50 = 0;\n    lVar31 = 0;\n    do {\n      local_74 = (int)lVar31;\n      iVar14 = local_74;\n      TransformImageColorspace(param_2,0x17,param_3);\n      uVar17 = GetNumberColors(param_2,0,param_3);\n      local_a0 = 1;\n      if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(param_2,(short)param_2[6]);\n      WriteBlobMSBShort(param_2,(short)param_2[7]);\n      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(param_2,uVar21 & 0xffff);\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(param_2,local_48);\n      WriteBlobByte(param_2,local_a0);\n      if (1 < local_a0) {\n        local_46 = 1;\n      }\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }\n      WriteBlobByte(param_2,local_46);\n      WriteBlobMSBShort(param_2,0);\n      WriteBlobByte(param_2,0);\n      if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }\n      WriteBlobMSBShort(param_2,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }\n      lVar32 = CONCAT44(local_60,local_64);\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }\n      local_7c = (char *)0x0;\n      piVar29 = param_2;\n      if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }\n      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);\n      if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }\n      if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }\n      if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }\n      RelinquishMagickMemory(pcVar18);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      iVar20 = GetNextImageInList(param_2);\n      if (iVar20 == 0) goto LAB_00261e48;\n      uVar21 = GetBlobSize(param_2);\n      uVar21 = uVar21 & 3;\n      iVar20 = 0;\n      if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }\n      SeekBlob(param_2,lVar31 + 10,0);\n      iVar20 = GetBlobSize(param_2);\n      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);\n      lVar31 = GetBlobSize(param_2);\n      uVar21 = 0;\n      SeekBlob(param_2,lVar31);\n      param_2 = (int *)SyncNextImageInList(param_2);\n      bVar30 = 0xfffffffe < local_54;\n      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);\n      if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;\n    } while( true );\n  }\nLAB_00260565:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002decd0();\n  }\n  return iVar14;\nLAB_00261ad3:\n  dVar2 = (double)iVar22;\nLAB_00261adb:\n  if (iVar8 != 0) {\n    *(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;\n  }\n  local_d4 = local_d4 + 1;\n  iVar25 = iVar25 + iVar7 * 8;\n  if (local_d4 == iVar19) goto LAB_00261b09;\n  goto LAB_002618c8;\nLAB_00261e48:\n  DestroyQuantizeInfo(piVar15);\n  CloseBlob(param_2);\n  iVar14 = 1;\n  goto LAB_00260565;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "undefined1 uVar11;" type_identifier identifier ;) (declaration "short sVar12;" (sized_type_specifier "short" short) identifier ;) (declaration "short sVar13;" (sized_type_specifier "short" short) identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "char *pcVar24;" primitive_type (pointer_declarator "*pcVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "char cVar27;" primitive_type identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "int *piVar29;" primitive_type (pointer_declarator "*piVar29" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar30;" primitive_type identifier ;) (declaration "longlong lVar31;" type_identifier identifier ;) (declaration "longlong lVar32;" type_identifier identifier ;) (declaration "uint local_d4;" type_identifier identifier ;) (declaration "ulonglong local_cc;" type_identifier identifier ;) (declaration "char *local_b8;" primitive_type (pointer_declarator "*local_b8" * identifier) ;) (declaration "byte local_b4;" type_identifier identifier ;) (declaration "char *local_b0;" primitive_type (pointer_declarator "*local_b0" * identifier) ;) (declaration "uint local_ac;" type_identifier identifier ;) (declaration "uint local_a0;" type_identifier identifier ;) (declaration "char *local_9c;" primitive_type (pointer_declarator "*local_9c" * identifier) ;) (declaration "double local_94;" primitive_type identifier ;) (declaration "double local_8c;" primitive_type identifier ;) (declaration "double local_84;" primitive_type identifier ;) (declaration "char *local_7c;" primitive_type (pointer_declarator "*local_7c" * identifier) ;) (declaration "char *local_78;" primitive_type (pointer_declarator "*local_78" * identifier) ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "uint local_60;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "ushort local_48;" type_identifier identifier ;) (declaration "undefined1 local_46;" type_identifier identifier ;) (declaration "byte local_45;" type_identifier identifier ;) (declaration "char local_28 [4];" primitive_type (array_declarator "local_28 [4]" identifier [ number_literal ]) ;) (declaration "char local_24;" primitive_type identifier ;) (declaration "char local_23;" primitive_type identifier ;) (declaration "char local_22;" primitive_type identifier ;) (declaration "char local_21;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (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/palm.c",0x2ed,"WritePALMImage");\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/palm.c",0x2ed,"WritePALMImage");\n  }" { comment (expression_statement "__assert_fail("image_info != (const ImageInfo *) NULL","coders/palm.c",0x2ed,"WritePALMImage");" (call_expression "__assert_fail("image_info != (const ImageInfo *) NULL","coders/palm.c",0x2ed,"WritePALMImage")" identifier (argument_list "("image_info != (const ImageInfo *) NULL","coders/palm.c",0x2ed,"WritePALMImage")" ( (string_literal ""image_info != (const ImageInfo *) NULL"" " string_content ") , (string_literal ""coders/palm.c"" " string_content ") , number_literal , (string_literal ""WritePALMImage"" " string_content ") ))) ;) })) (if_statement "if (param_1[0xc7d] != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage");\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/palm.c",0x2ee,\n                  "WritePALMImage");\n  }" { comment (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage")" identifier (argument_list "("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage")" ( (string_literal ""image_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/palm.c"" " string_content ") , number_literal , (string_literal ""WritePALMImage"" " string_content ") ))) ;) })) (if_statement "if (param_2 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");\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/palm.c",0x2ef,"WritePALMImage");\n  }" { comment (expression_statement "__assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");" (call_expression "__assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage")" identifier (argument_list "("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""coders/palm.c"" " string_content ") , number_literal , (string_literal ""WritePALMImage"" " string_content ") ))) ;) })) (if_statement "if (param_2[0xcd1] != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");\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/palm.c",0x2f0,"WritePALMImage");\n  }" { comment (expression_statement "__assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage")" identifier (argument_list "("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/palm.c"" " string_content ") , number_literal , (string_literal ""WritePALMImage"" " string_content ") ))) ;) })) (if_statement "if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&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/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6);\n  }" { (expression_statement "LogMagickEvent(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6);" (call_expression "LogMagickEvent(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6)" identifier (argument_list "(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6)" ( number_literal , (string_literal ""coders/palm.c"" " string_content ") , (string_literal ""WritePALMImage"" " string_content ") , number_literal , (pointer_expression "&DAT_002f75ae" & identifier) , (binary_expression "param_2 + 0xc6" identifier + number_literal) ))) ;) })) (if_statement "if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");\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/palm.c",0x2f3,"WritePALMImage");\n  }" { comment (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage")" identifier (argument_list "("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage")" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""coders/palm.c"" " string_content ") , number_literal , (string_literal ""WritePALMImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage");\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/palm.c",0x2f4,\n                  "WritePALMImage");\n  }" { comment (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage");" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage")" identifier (argument_list "("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage")" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/palm.c"" " string_content ") , number_literal , (string_literal ""WritePALMImage"" " string_content ") ))) ;) })) (expression_statement "uVar21 = param_3;" (assignment_expression "uVar21 = param_3" identifier = identifier) ;) (expression_statement "iVar14 = OpenBlob(param_1,param_2,4,param_3);" (assignment_expression "iVar14 = 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 (iVar14 != 0) {\n    piVar15 = (int *)AcquireQuantizeInfo(param_1);\n    uVar16 = GetImageListLength(param_2);\n    local_8c = 0.0;\n    local_48 = 0;\n    local_84 = 0.0;\n    local_46 = 0;\n    local_94 = 0.0;\n    local_54 = 0;\n    local_50 = 0;\n    lVar31 = 0;\n    do {\n      local_74 = (int)lVar31;\n      iVar14 = local_74;\n      TransformImageColorspace(param_2,0x17,param_3);\n      uVar17 = GetNumberColors(param_2,0,param_3);\n      local_a0 = 1;\n      if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(param_2,(short)param_2[6]);\n      WriteBlobMSBShort(param_2,(short)param_2[7]);\n      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(param_2,uVar21 & 0xffff);\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(param_2,local_48);\n      WriteBlobByte(param_2,local_a0);\n      if (1 < local_a0) {\n        local_46 = 1;\n      }\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }\n      WriteBlobByte(param_2,local_46);\n      WriteBlobMSBShort(param_2,0);\n      WriteBlobByte(param_2,0);\n      if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }\n      WriteBlobMSBShort(param_2,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }\n      lVar32 = CONCAT44(local_60,local_64);\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }\n      local_7c = (char *)0x0;\n      piVar29 = param_2;\n      if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }\n      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);\n      if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }\n      if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }\n      if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }\n      RelinquishMagickMemory(pcVar18);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      iVar20 = GetNextImageInList(param_2);\n      if (iVar20 == 0) goto LAB_00261e48;\n      uVar21 = GetBlobSize(param_2);\n      uVar21 = uVar21 & 3;\n      iVar20 = 0;\n      if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }\n      SeekBlob(param_2,lVar31 + 10,0);\n      iVar20 = GetBlobSize(param_2);\n      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);\n      lVar31 = GetBlobSize(param_2);\n      uVar21 = 0;\n      SeekBlob(param_2,lVar31);\n      param_2 = (int *)SyncNextImageInList(param_2);\n      bVar30 = 0xfffffffe < local_54;\n      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);\n      if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;\n    } while( true );\n  }" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar15 = (int *)AcquireQuantizeInfo(param_1);\n    uVar16 = GetImageListLength(param_2);\n    local_8c = 0.0;\n    local_48 = 0;\n    local_84 = 0.0;\n    local_46 = 0;\n    local_94 = 0.0;\n    local_54 = 0;\n    local_50 = 0;\n    lVar31 = 0;\n    do {\n      local_74 = (int)lVar31;\n      iVar14 = local_74;\n      TransformImageColorspace(param_2,0x17,param_3);\n      uVar17 = GetNumberColors(param_2,0,param_3);\n      local_a0 = 1;\n      if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(param_2,(short)param_2[6]);\n      WriteBlobMSBShort(param_2,(short)param_2[7]);\n      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(param_2,uVar21 & 0xffff);\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(param_2,local_48);\n      WriteBlobByte(param_2,local_a0);\n      if (1 < local_a0) {\n        local_46 = 1;\n      }\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }\n      WriteBlobByte(param_2,local_46);\n      WriteBlobMSBShort(param_2,0);\n      WriteBlobByte(param_2,0);\n      if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }\n      WriteBlobMSBShort(param_2,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }\n      lVar32 = CONCAT44(local_60,local_64);\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }\n      local_7c = (char *)0x0;\n      piVar29 = param_2;\n      if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }\n      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);\n      if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }\n      if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }\n      if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }\n      RelinquishMagickMemory(pcVar18);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      iVar20 = GetNextImageInList(param_2);\n      if (iVar20 == 0) goto LAB_00261e48;\n      uVar21 = GetBlobSize(param_2);\n      uVar21 = uVar21 & 3;\n      iVar20 = 0;\n      if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }\n      SeekBlob(param_2,lVar31 + 10,0);\n      iVar20 = GetBlobSize(param_2);\n      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);\n      lVar31 = GetBlobSize(param_2);\n      uVar21 = 0;\n      SeekBlob(param_2,lVar31);\n      param_2 = (int *)SyncNextImageInList(param_2);\n      bVar30 = 0xfffffffe < local_54;\n      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);\n      if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;\n    } while( true );\n  }" { (expression_statement "piVar15 = (int *)AcquireQuantizeInfo(param_1);" (assignment_expression "piVar15 = (int *)AcquireQuantizeInfo(param_1)" identifier = (cast_expression "(int *)AcquireQuantizeInfo(param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantizeInfo(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;) (expression_statement "uVar16 = GetImageListLength(param_2);" (assignment_expression "uVar16 = GetImageListLength(param_2)" identifier = (call_expression "GetImageListLength(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "local_8c = 0.0;" (assignment_expression "local_8c = 0.0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_84 = 0.0;" (assignment_expression "local_84 = 0.0" identifier = number_literal) ;) (expression_statement "local_46 = 0;" (assignment_expression "local_46 = 0" identifier = number_literal) ;) (expression_statement "local_94 = 0.0;" (assignment_expression "local_94 = 0.0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "lVar31 = 0;" (assignment_expression "lVar31 = 0" identifier = number_literal) ;) (do_statement "do {\n      local_74 = (int)lVar31;\n      iVar14 = local_74;\n      TransformImageColorspace(param_2,0x17,param_3);\n      uVar17 = GetNumberColors(param_2,0,param_3);\n      local_a0 = 1;\n      if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(param_2,(short)param_2[6]);\n      WriteBlobMSBShort(param_2,(short)param_2[7]);\n      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(param_2,uVar21 & 0xffff);\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(param_2,local_48);\n      WriteBlobByte(param_2,local_a0);\n      if (1 < local_a0) {\n        local_46 = 1;\n      }\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }\n      WriteBlobByte(param_2,local_46);\n      WriteBlobMSBShort(param_2,0);\n      WriteBlobByte(param_2,0);\n      if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }\n      WriteBlobMSBShort(param_2,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }\n      lVar32 = CONCAT44(local_60,local_64);\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }\n      local_7c = (char *)0x0;\n      piVar29 = param_2;\n      if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }\n      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);\n      if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }\n      if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }\n      if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }\n      RelinquishMagickMemory(pcVar18);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      iVar20 = GetNextImageInList(param_2);\n      if (iVar20 == 0) goto LAB_00261e48;\n      uVar21 = GetBlobSize(param_2);\n      uVar21 = uVar21 & 3;\n      iVar20 = 0;\n      if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }\n      SeekBlob(param_2,lVar31 + 10,0);\n      iVar20 = GetBlobSize(param_2);\n      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);\n      lVar31 = GetBlobSize(param_2);\n      uVar21 = 0;\n      SeekBlob(param_2,lVar31);\n      param_2 = (int *)SyncNextImageInList(param_2);\n      bVar30 = 0xfffffffe < local_54;\n      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);\n      if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;\n    } while( true );" do (compound_statement "{\n      local_74 = (int)lVar31;\n      iVar14 = local_74;\n      TransformImageColorspace(param_2,0x17,param_3);\n      uVar17 = GetNumberColors(param_2,0,param_3);\n      local_a0 = 1;\n      if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(param_2,(short)param_2[6]);\n      WriteBlobMSBShort(param_2,(short)param_2[7]);\n      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(param_2,uVar21 & 0xffff);\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(param_2,local_48);\n      WriteBlobByte(param_2,local_a0);\n      if (1 < local_a0) {\n        local_46 = 1;\n      }\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }\n      WriteBlobByte(param_2,local_46);\n      WriteBlobMSBShort(param_2,0);\n      WriteBlobByte(param_2,0);\n      if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }\n      WriteBlobMSBShort(param_2,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }\n      lVar32 = CONCAT44(local_60,local_64);\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }\n      local_7c = (char *)0x0;\n      piVar29 = param_2;\n      if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }\n      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);\n      if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }\n      if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }\n      if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }\n      RelinquishMagickMemory(pcVar18);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      iVar20 = GetNextImageInList(param_2);\n      if (iVar20 == 0) goto LAB_00261e48;\n      uVar21 = GetBlobSize(param_2);\n      uVar21 = uVar21 & 3;\n      iVar20 = 0;\n      if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }\n      SeekBlob(param_2,lVar31 + 10,0);\n      iVar20 = GetBlobSize(param_2);\n      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);\n      lVar31 = GetBlobSize(param_2);\n      uVar21 = 0;\n      SeekBlob(param_2,lVar31);\n      param_2 = (int *)SyncNextImageInList(param_2);\n      bVar30 = 0xfffffffe < local_54;\n      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);\n      if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;\n    }" { (expression_statement "local_74 = (int)lVar31;" (assignment_expression "local_74 = (int)lVar31" identifier = (cast_expression "(int)lVar31" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar14 = local_74;" (assignment_expression "iVar14 = local_74" identifier = 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 "uVar17 = GetNumberColors(param_2,0,param_3);" (assignment_expression "uVar17 = GetNumberColors(param_2,0,param_3)" identifier = (call_expression "GetNumberColors(param_2,0,param_3)" identifier (argument_list "(param_2,0,param_3)" ( identifier , number_literal , identifier )))) ;) (expression_statement "local_a0 = 1;" (assignment_expression "local_a0 = 1" identifier = number_literal) ;) (if_statement "if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }" if (parenthesized_expression "(uVar17 < 3)" ( (binary_expression "uVar17 < 3" identifier < number_literal) )) (compound_statement "{\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }" { (expression_statement "TransformImageColorspace(param_2,param_2[1],param_3);" (call_expression "TransformImageColorspace(param_2,param_2[1],param_3)" identifier (argument_list "(param_2,param_2[1],param_3)" ( identifier , (subscript_expression "param_2[1]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "local_a0 = 1;" (assignment_expression "local_a0 = 1" identifier = number_literal) ;) (expression_statement "local_45 = 1;" (assignment_expression "local_45 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);" statement_identifier : (expression_statement "TransformImageColorspace(param_2,3,param_3,uVar21);" (call_expression "TransformImageColorspace(param_2,3,param_3,uVar21)" identifier (argument_list "(param_2,3,param_3,uVar21)" ( identifier , number_literal , identifier , identifier ))) ;)) (expression_statement "SetImageType(param_2,4,param_3);" (call_expression "SetImageType(param_2,4,param_3)" identifier (argument_list "(param_2,4,param_3)" ( identifier , number_literal , identifier ))) ;) (expression_statement "SortColormapByIntensity(param_2,param_3);" (call_expression "SortColormapByIntensity(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier ))) ;) }) (else_clause "else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }" else (compound_statement "{\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }" { (do_statement "do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);" do (compound_statement "{\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        }" { (expression_statement "local_a0 = local_a0 * 2;" (assignment_expression "local_a0 = local_a0 * 2" identifier = (binary_expression "local_a0 * 2" identifier * number_literal)) ;) (expression_statement "local_45 = (byte)local_a0;" (assignment_expression "local_45 = (byte)local_a0" identifier = (cast_expression "(byte)local_a0" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "((uint)(1 << (local_45 & 0x1f)) < uVar17)" ( (binary_expression "(uint)(1 << (local_45 & 0x1f)) < uVar17" (call_expression "(uint)(1 << (local_45 & 0x1f))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 << (local_45 & 0x1f))" ( (binary_expression "1 << (local_45 & 0x1f)" number_literal << (parenthesized_expression "(local_45 & 0x1f)" ( (binary_expression "local_45 & 0x1f" identifier & number_literal) ))) ))) < identifier) )) ;) (if_statement "if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }" if (parenthesized_expression "(local_a0 < 0x11)" ( (binary_expression "local_a0 < 0x11" identifier < number_literal) )) (compound_statement "{\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }" { (if_statement "if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }" if (parenthesized_expression "(local_a0 == 0x10)" ( (binary_expression "local_a0 == 0x10" identifier == number_literal) )) (compound_statement "{\n            local_45 = 0x10;\n          }" { (expression_statement "local_45 = 0x10;" (assignment_expression "local_45 = 0x10" identifier = number_literal) ;) }) (else_clause "else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }" else (compound_statement "{\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }" { (expression_statement "uVar21 = local_a0;" (assignment_expression "uVar21 = local_a0" identifier = identifier) ;) (expression_statement "TransformImageColorspace(param_2,param_2[1],param_3,local_a0);" (call_expression "TransformImageColorspace(param_2,param_2[1],param_3,local_a0)" identifier (argument_list "(param_2,param_2[1],param_3,local_a0)" ( identifier , (subscript_expression "param_2[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) (if_statement "if (local_a0 < 8) goto LAB_00261df3;" if (parenthesized_expression "(local_a0 < 8)" ( (binary_expression "local_a0 < 8" identifier < number_literal) )) (goto_statement "goto LAB_00261df3;" goto statement_identifier ;)) }))) }) (else_clause "else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }" else (compound_statement "{\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }" { (expression_statement "local_a0 = 0x10;" (assignment_expression "local_a0 = 0x10" identifier = number_literal) ;) (expression_statement "local_45 = 0x10;" (assignment_expression "local_45 = 0x10" identifier = number_literal) ;) }))) }))) (if_statement "if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }" if (parenthesized_expression "((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2))))" ( (binary_expression "(*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))" (parenthesized_expression "(*param_2 == 2)" ( (binary_expression "*param_2 == 2" (pointer_expression "*param_2" * identifier) == number_literal) )) && (parenthesized_expression "(((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))" ( (parenthesized_expression "((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2))" ( (binary_expression "(uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)" (binary_expression "(uint)param_2[9] < 0x101" (cast_expression "(uint)param_2[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[9]" identifier [ number_literal ])) < number_literal) || (parenthesized_expression "(SetImageStorageClass(param_2,1,param_3), *param_2 == 2)" ( (comma_expression "SetImageStorageClass(param_2,1,param_3), *param_2 == 2" (call_expression "SetImageStorageClass(param_2,1,param_3)" identifier (argument_list "(param_2,1,param_3)" ( identifier , number_literal , identifier ))) , (binary_expression "*param_2 == 2" (pointer_expression "*param_2" * identifier) == number_literal)) ))) )) ))) )) (compound_statement "{\n        local_48 = local_48 | 0x4000;\n      }" { (expression_statement "local_48 = local_48 | 0x4000;" (assignment_expression "local_48 = local_48 | 0x4000" identifier = (binary_expression "local_48 | 0x4000" identifier | number_literal)) ;) }) (else_clause "else {\n        local_48 = local_48 | 0x400;\n      }" else (compound_statement "{\n        local_48 = local_48 | 0x400;\n      }" { (expression_statement "local_48 = local_48 | 0x400;" (assignment_expression "local_48 = local_48 | 0x400" identifier = (binary_expression "local_48 | 0x400" 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 "uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;" (assignment_expression "uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2" identifier = (binary_expression "(int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2" (cast_expression "(int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0))" ( (binary_expression "(ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)" (call_expression "(ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6])" (call_expression "(ulonglong)(uint)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6])" ( (binary_expression "(int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]" (binary_expression "(int)(0x10 / (ulonglong)local_a0) + -1" (cast_expression "(int)(0x10 / (ulonglong)local_a0)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(0x10 / (ulonglong)local_a0)" ( (binary_expression "0x10 / (ulonglong)local_a0" number_literal / (cast_expression "(ulonglong)local_a0" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ))) + number_literal) + (subscript_expression "param_2[6]" identifier [ number_literal ])) ))) / (parenthesized_expression "(0x10 / (ulonglong)local_a0)" ( (binary_expression "0x10 / (ulonglong)local_a0" number_literal / (cast_expression "(ulonglong)local_a0" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ))) ))) * number_literal)) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar21 & 0xffff);" (call_expression "WriteBlobMSBShort(param_2,uVar21 & 0xffff)" identifier (argument_list "(param_2,uVar21 & 0xffff)" ( identifier , (binary_expression "uVar21 & 0xffff" identifier & number_literal) ))) ;) (if_statement "if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }" if (parenthesized_expression "((*param_1 == 0x13) || (*param_1 == 7))" ( (binary_expression "(*param_1 == 0x13) || (*param_1 == 7)" (parenthesized_expression "(*param_1 == 0x13)" ( (binary_expression "*param_1 == 0x13" (pointer_expression "*param_1" * identifier) == number_literal) )) || (parenthesized_expression "(*param_1 == 7)" ( (binary_expression "*param_1 == 7" (pointer_expression "*param_1" * identifier) == number_literal) ))) )) (compound_statement "{\n        local_48 = local_48 | 0x8000;\n      }" { (expression_statement "local_48 = local_48 | 0x8000;" (assignment_expression "local_48 = local_48 | 0x8000" identifier = (binary_expression "local_48 | 0x8000" identifier | number_literal)) ;) })) (expression_statement "WriteBlobMSBShort(param_2,local_48);" (call_expression "WriteBlobMSBShort(param_2,local_48)" identifier (argument_list "(param_2,local_48)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobByte(param_2,local_a0);" (call_expression "WriteBlobByte(param_2,local_a0)" identifier (argument_list "(param_2,local_a0)" ( identifier , identifier ))) ;) (if_statement "if (1 < local_a0) {\n        local_46 = 1;\n      }" if (parenthesized_expression "(1 < local_a0)" ( (binary_expression "1 < local_a0" number_literal < identifier) )) (compound_statement "{\n        local_46 = 1;\n      }" { (expression_statement "local_46 = 1;" (assignment_expression "local_46 = 1" identifier = number_literal) ;) })) (if_statement "if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }" if (parenthesized_expression "((*param_1 == 0x13) || (*param_1 == 7))" ( (binary_expression "(*param_1 == 0x13) || (*param_1 == 7)" (parenthesized_expression "(*param_1 == 0x13)" ( (binary_expression "*param_1 == 0x13" (pointer_expression "*param_1" * identifier) == number_literal) )) || (parenthesized_expression "(*param_1 == 7)" ( (binary_expression "*param_1 == 7" (pointer_expression "*param_1" * identifier) == number_literal) ))) )) (compound_statement "{\n        local_46 = 2;\n      }" { (expression_statement "local_46 = 2;" (assignment_expression "local_46 = 2" identifier = number_literal) ;) })) (expression_statement "WriteBlobByte(param_2,local_46);" (call_expression "WriteBlobByte(param_2,local_46)" identifier (argument_list "(param_2,local_46)" ( 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 "WriteBlobByte(param_2,0);" (call_expression "WriteBlobByte(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (if_statement "if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }" if (parenthesized_expression "(*param_1 == 0x13)" ( (binary_expression "*param_1 == 0x13" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n        WriteBlobByte(param_2,1);\n      }" { (expression_statement "WriteBlobByte(param_2,1);" (call_expression "WriteBlobByte(param_2,1)" identifier (argument_list "(param_2,1)" ( identifier , number_literal ))) ;) }) (else_clause "else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }" else (if_statement "if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }" if (parenthesized_expression "(*param_1 == 7)" ( (binary_expression "*param_1 == 7" (pointer_expression "*param_1" * identifier) == 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 ))) ;) }) (else_clause "else {\n        WriteBlobByte(param_2,0xff);\n      }" else (compound_statement "{\n        WriteBlobByte(param_2,0xff);\n      }" { (expression_statement "WriteBlobByte(param_2,0xff);" (call_expression "WriteBlobByte(param_2,0xff)" identifier (argument_list "(param_2,0xff)" ( identifier , number_literal ))) ;) }))))) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (if_statement "if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }" if (parenthesized_expression "(local_a0 == 0x10)" ( (binary_expression "local_a0 == 0x10" identifier == number_literal) )) (compound_statement "{\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }" { (expression_statement "WriteBlobByte(param_2,5);" (call_expression "WriteBlobByte(param_2,5)" identifier (argument_list "(param_2,5)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobByte(param_2,6);" (call_expression "WriteBlobByte(param_2,6)" identifier (argument_list "(param_2,6)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobByte(param_2,5);" (call_expression "WriteBlobByte(param_2,5)" identifier (argument_list "(param_2,5)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobByte(param_2,0);" (call_expression "WriteBlobByte(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 "local_64 = 0x18;" (assignment_expression "local_64 = 0x18" identifier = number_literal) ;) (labeled_statement "LAB_002607b8:\n        local_60 = 0;" statement_identifier : (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }" else (compound_statement "{\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }" { (expression_statement "local_64 = 0x10;" (assignment_expression "local_64 = 0x10" identifier = number_literal) ;) (if_statement "if (local_a0 != 8) goto LAB_002607b8;" if (parenthesized_expression "(local_a0 != 8)" ( (binary_expression "local_a0 != 8" identifier != number_literal) )) (goto_statement "goto LAB_002607b8;" goto statement_identifier ;)) (if_statement "if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }" if (parenthesized_expression "((local_48 & 0x4000) == 0)" ( (binary_expression "(local_48 & 0x4000) == 0" (parenthesized_expression "(local_48 & 0x4000)" ( (binary_expression "local_48 & 0x4000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }" { (expression_statement "iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);" (assignment_expression "iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3)" identifier = (call_expression "ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3)" identifier (argument_list "(0x100,1,"RGB",1,&DAT_00344940,param_3)" ( number_literal , number_literal , (string_literal ""RGB"" " string_content ") , number_literal , (pointer_expression "&DAT_00344940" & identifier) , identifier )))) ;) (expression_statement "TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);" (call_expression "TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3)" identifier (argument_list "(iVar20,*(undefined4 *)(iVar20 + 4),param_3)" ( identifier , (pointer_expression "*(undefined4 *)(iVar20 + 4)" * (cast_expression "(undefined4 *)(iVar20 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 4)" ( (binary_expression "iVar20 + 4" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "RemapImage(piVar15,param_2,iVar20,param_3);" (call_expression "RemapImage(piVar15,param_2,iVar20,param_3)" identifier (argument_list "(piVar15,param_2,iVar20,param_3)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\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            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }" { (expression_statement "iVar19 = param_2[6];" (assignment_expression "iVar19 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "local_78 = (char *)0x0;" (assignment_expression "local_78 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);" do (compound_statement "{\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            }" { (expression_statement "iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);" (assignment_expression "iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3)" identifier = (call_expression "GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3)" identifier (argument_list "(param_2,0,local_78,iVar19,1,param_3)" ( identifier , number_literal , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar25 == 0) break;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = param_2[6];" (assignment_expression "iVar19 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (if_statement "if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }" if (parenthesized_expression "(0 < iVar19)" ( (binary_expression "0 < iVar19" number_literal < identifier) )) (compound_statement "{\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }" { (expression_statement "iVar5 = param_2[10];" (assignment_expression "iVar5 = param_2[10]" identifier = (subscript_expression "param_2[10]" identifier [ number_literal ])) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = param_2[0xaa];" (assignment_expression "iVar6 = param_2[0xaa]" identifier = (subscript_expression "param_2[0xaa]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = param_2[0xa6];" (assignment_expression "iVar7 = param_2[0xa6]" identifier = (subscript_expression "param_2[0xa6]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = *(int *)(iVar6 + 0x40);" (assignment_expression "iVar8 = *(int *)(iVar6 + 0x40)" identifier = (pointer_expression "*(int *)(iVar6 + 0x40)" * (cast_expression "(int *)(iVar6 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x40)" ( (binary_expression "iVar6 + 0x40" identifier + number_literal) ))))) ;) (labeled_statement "LAB_002618c8:\n                iVar26 = iVar5;" statement_identifier : (expression_statement "iVar26 = iVar5;" (assignment_expression "iVar26 = iVar5" identifier = identifier) ;)) (if_statement "if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }" { (expression_statement "iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;" (assignment_expression "iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5" identifier = (binary_expression "(int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5" (binary_expression "(int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50" (cast_expression "(int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8))" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8))" identifier (argument_list "(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8))" ( (pointer_expression "*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)" * (cast_expression "(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + *(int *)(iVar6 + 0x44) * 8)" ( (binary_expression "iVar25 + *(int *)(iVar6 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar6 + 0x44) * 8" (pointer_expression "*(int *)(iVar6 + 0x44)" * (cast_expression "(int *)(iVar6 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x44)" ( (binary_expression "iVar6 + 0x44" identifier + number_literal) )))) * number_literal)) )))) )))) * number_literal) + identifier)) ;) })) (expression_statement "dVar2 = *(double *)(iVar26 + 0x20);" (assignment_expression "dVar2 = *(double *)(iVar26 + 0x20)" identifier = (pointer_expression "*(double *)(iVar26 + 0x20)" * (cast_expression "(double *)(iVar26 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x20)" ( (binary_expression "iVar26 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" if (parenthesized_expression "(NAN(dVar2))" ( (call_expression "NAN(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))) )) (compound_statement "{\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "pcVar18 = &DAT_00344940;" (assignment_expression "pcVar18 = &DAT_00344940" identifier = (pointer_expression "&DAT_00344940" & identifier)) ;) (do_statement "do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);" do (compound_statement "{\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  }" { (if_statement "if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }" if (parenthesized_expression "(*pcVar18 == '\0')" ( (binary_expression "*pcVar18 == '\0'" (pointer_expression "*pcVar18" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }" { (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }" if (parenthesized_expression "(0.0 < *(double *)(iVar26 + 0x28))" ( (binary_expression "0.0 < *(double *)(iVar26 + 0x28)" number_literal < (pointer_expression "*(double *)(iVar26 + 0x28)" * (cast_expression "(double *)(iVar26 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x28)" ( (binary_expression "iVar26 + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }" { (expression_statement "dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;" (assignment_expression "dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c" identifier = (binary_expression "*(double *)(iVar26 + 0x28) / (double)DAT_002e814c" (pointer_expression "*(double *)(iVar26 + 0x28)" * (cast_expression "(double *)(iVar26 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x28)" ( (binary_expression "iVar26 + 0x28" identifier + number_literal) )))) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }" { (expression_statement "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "char" primitive_type) ) (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)) )))))) ;) })) })) (if_statement "if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }" if (parenthesized_expression "(pcVar18[1] == cVar27)" ( (binary_expression "pcVar18[1] == cVar27" (subscript_expression "pcVar18[1]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }" { (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" if (parenthesized_expression "(0.0 < *(double *)(iVar26 + 0x30))" ( (binary_expression "0.0 < *(double *)(iVar26 + 0x30)" number_literal < (pointer_expression "*(double *)(iVar26 + 0x30)" * (cast_expression "(double *)(iVar26 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x30)" ( (binary_expression "iVar26 + 0x30" identifier + number_literal) ))))) )) (compound_statement "{\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" { (expression_statement "dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;" (assignment_expression "dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c" identifier = (binary_expression "*(double *)(iVar26 + 0x30) / (double)DAT_002e814c" (pointer_expression "*(double *)(iVar26 + 0x30)" * (cast_expression "(double *)(iVar26 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x30)" ( (binary_expression "iVar26 + 0x30" identifier + number_literal) )))) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" { (expression_statement "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "char" primitive_type) ) (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)) )))))) ;) })) })) (if_statement "if (pcVar18[2] == cVar27) goto LAB_00261ad3;" if (parenthesized_expression "(pcVar18[2] == cVar27)" ( (binary_expression "pcVar18[2] == cVar27" (subscript_expression "pcVar18[2]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00261ad3;" goto statement_identifier ;)) })) })) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "pcVar18 = pcVar18 + 3;" (assignment_expression "pcVar18 = pcVar18 + 3" identifier = (binary_expression "pcVar18 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar22 != 0x100)" ( (binary_expression "iVar22 != 0x100" identifier != number_literal) )) ;) }) (else_clause "else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" else (if_statement "if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" if (parenthesized_expression "(dVar2 <= 0.0)" ( (binary_expression "dVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "pcVar18 = &DAT_00344940;" (assignment_expression "pcVar18 = &DAT_00344940" identifier = (pointer_expression "&DAT_00344940" & identifier)) ;) (do_statement "do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);" do (compound_statement "{\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  }" { (if_statement "if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }" if (parenthesized_expression "(*pcVar18 == '\0')" ( (binary_expression "*pcVar18 == '\0'" (pointer_expression "*pcVar18" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }" { (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }" if (parenthesized_expression "(0.0 < *(double *)(iVar26 + 0x28))" ( (binary_expression "0.0 < *(double *)(iVar26 + 0x28)" number_literal < (pointer_expression "*(double *)(iVar26 + 0x28)" * (cast_expression "(double *)(iVar26 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x28)" ( (binary_expression "iVar26 + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }" { (expression_statement "dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;" (assignment_expression "dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c" identifier = (binary_expression "*(double *)(iVar26 + 0x28) / (double)DAT_002e814c" (pointer_expression "*(double *)(iVar26 + 0x28)" * (cast_expression "(double *)(iVar26 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x28)" ( (binary_expression "iVar26 + 0x28" identifier + number_literal) )))) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }" { (expression_statement "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "char" primitive_type) ) (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)) )))))) ;) })) })) (if_statement "if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }" if (parenthesized_expression "(pcVar18[1] == cVar27)" ( (binary_expression "pcVar18[1] == cVar27" (subscript_expression "pcVar18[1]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }" { (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" if (parenthesized_expression "(0.0 < *(double *)(iVar26 + 0x30))" ( (binary_expression "0.0 < *(double *)(iVar26 + 0x30)" number_literal < (pointer_expression "*(double *)(iVar26 + 0x30)" * (cast_expression "(double *)(iVar26 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x30)" ( (binary_expression "iVar26 + 0x30" identifier + number_literal) ))))) )) (compound_statement "{\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" { (expression_statement "dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;" (assignment_expression "dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c" identifier = (binary_expression "*(double *)(iVar26 + 0x30) / (double)DAT_002e814c" (pointer_expression "*(double *)(iVar26 + 0x30)" * (cast_expression "(double *)(iVar26 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x30)" ( (binary_expression "iVar26 + 0x30" identifier + number_literal) )))) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" { (expression_statement "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "char" primitive_type) ) (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)) )))))) ;) })) })) (if_statement "if (pcVar18[2] == cVar27) goto LAB_00261ad3;" if (parenthesized_expression "(pcVar18[2] == cVar27)" ( (binary_expression "pcVar18[2] == cVar27" (subscript_expression "pcVar18[2]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00261ad3;" goto statement_identifier ;)) })) })) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "pcVar18 = pcVar18 + 3;" (assignment_expression "pcVar18 = pcVar18 + 3" identifier = (binary_expression "pcVar18 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar22 != 0x100)" ( (binary_expression "iVar22 != 0x100" identifier != number_literal) )) ;) }) (else_clause "else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" else (compound_statement "{\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "pcVar18 = &DAT_00344940;" (assignment_expression "pcVar18 = &DAT_00344940" identifier = (pointer_expression "&DAT_00344940" & identifier)) ;) (do_statement "do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);" do (compound_statement "{\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  }" { (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" identifier = number_literal) ;) (if_statement "if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }" if (parenthesized_expression "(dVar2 / (double)DAT_002e814c < (double)DAT_002e8150)" ( (binary_expression "dVar2 / (double)DAT_002e814c < (double)DAT_002e8150" (binary_expression "dVar2 / (double)DAT_002e814c" identifier / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier)) < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }" { (expression_statement "cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8)" identifier = (cast_expression "(char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8)" ( (type_descriptor "char" primitive_type) ) (cast_expression "(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8)" identifier (argument_list "(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8)" ( (binary_expression "dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8" (binary_expression "dVar2 / (double)DAT_002e814c" identifier / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier)) + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) (if_statement "if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }" if (parenthesized_expression "(*pcVar18 == cVar27)" ( (binary_expression "*pcVar18 == cVar27" (pointer_expression "*pcVar18" * identifier) == identifier) )) (compound_statement "{\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }" { (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }" if (parenthesized_expression "(0.0 < *(double *)(iVar26 + 0x28))" ( (binary_expression "0.0 < *(double *)(iVar26 + 0x28)" number_literal < (pointer_expression "*(double *)(iVar26 + 0x28)" * (cast_expression "(double *)(iVar26 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x28)" ( (binary_expression "iVar26 + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }" { (expression_statement "dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;" (assignment_expression "dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c" identifier = (binary_expression "*(double *)(iVar26 + 0x28) / (double)DAT_002e814c" (pointer_expression "*(double *)(iVar26 + 0x28)" * (cast_expression "(double *)(iVar26 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x28)" ( (binary_expression "iVar26 + 0x28" identifier + number_literal) )))) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" identifier = number_literal) ;) (if_statement "if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }" if (parenthesized_expression "(dVar4 < (double)DAT_002e8150)" ( (binary_expression "dVar4 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }" { (expression_statement "cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8)" identifier = (cast_expression "(char)(short)ROUND(dVar4 + (double)DAT_002df2b8)" ( (type_descriptor "char" primitive_type) ) (cast_expression "(short)ROUND(dVar4 + (double)DAT_002df2b8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar4 + (double)DAT_002df2b8)" identifier (argument_list "(dVar4 + (double)DAT_002df2b8)" ( (binary_expression "dVar4 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (if_statement "if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }" if (parenthesized_expression "(pcVar18[1] == cVar27)" ( (binary_expression "pcVar18[1] == cVar27" (subscript_expression "pcVar18[1]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }" { (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }" if (parenthesized_expression "(0.0 < *(double *)(iVar26 + 0x30))" ( (binary_expression "0.0 < *(double *)(iVar26 + 0x30)" number_literal < (pointer_expression "*(double *)(iVar26 + 0x30)" * (cast_expression "(double *)(iVar26 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x30)" ( (binary_expression "iVar26 + 0x30" identifier + number_literal) ))))) )) (compound_statement "{\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }" { (expression_statement "dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;" (assignment_expression "dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c" identifier = (binary_expression "*(double *)(iVar26 + 0x30) / (double)DAT_002e814c" (pointer_expression "*(double *)(iVar26 + 0x30)" * (cast_expression "(double *)(iVar26 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x30)" ( (binary_expression "iVar26 + 0x30" identifier + number_literal) )))) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" identifier = number_literal) ;) (if_statement "if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }" if (parenthesized_expression "(dVar4 < (double)DAT_002e8150)" ( (binary_expression "dVar4 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }" { (expression_statement "cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8)" identifier = (cast_expression "(char)(short)ROUND(dVar4 + (double)DAT_002df2b8)" ( (type_descriptor "char" primitive_type) ) (cast_expression "(short)ROUND(dVar4 + (double)DAT_002df2b8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar4 + (double)DAT_002df2b8)" identifier (argument_list "(dVar4 + (double)DAT_002df2b8)" ( (binary_expression "dVar4 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (if_statement "if (pcVar18[2] == cVar27) goto LAB_00261ad3;" if (parenthesized_expression "(pcVar18[2] == cVar27)" ( (binary_expression "pcVar18[2] == cVar27" (subscript_expression "pcVar18[2]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00261ad3;" goto statement_identifier ;)) })) })) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "pcVar18 = pcVar18 + 3;" (assignment_expression "pcVar18 = pcVar18 + 3" identifier = (binary_expression "pcVar18 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar22 != 0x100)" ( (binary_expression "iVar22 != 0x100" identifier != number_literal) )) ;) }))))) (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" identifier = number_literal) ;) (goto_statement "goto LAB_00261adb;" goto statement_identifier ;) })) (labeled_statement "LAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);" statement_identifier : (expression_statement "local_78 = (char *)((int)local_78 + 1);" (assignment_expression "local_78 = (char *)((int)local_78 + 1)" identifier = (cast_expression "(char *)((int)local_78 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_78 + 1)" ( (binary_expression "(int)local_78 + 1" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) }) while (parenthesized_expression "((int)local_78 < param_2[7])" ( (binary_expression "(int)local_78 < param_2[7]" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) < (subscript_expression "param_2[7]" identifier [ number_literal ])) )) ;) })) (expression_statement "DestroyImage(iVar20);" (call_expression "DestroyImage(iVar20)" identifier (argument_list "(iVar20)" ( identifier ))) ;) (expression_statement "local_64 = 0x10;" (assignment_expression "local_64 = 0x10" identifier = number_literal) ;) (goto_statement "goto LAB_002607b8;" goto statement_identifier ;) })) (expression_statement "iVar20 = IdentifyPaletteImage(param_2,param_3);" (assignment_expression "iVar20 = IdentifyPaletteImage(param_2,param_3)" identifier = (call_expression "IdentifyPaletteImage(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (expression_statement "piVar15[3] = (iVar20 == 0) + 1;" (assignment_expression "piVar15[3] = (iVar20 == 0) + 1" (subscript_expression "piVar15[3]" identifier [ number_literal ]) = (binary_expression "(iVar20 == 0) + 1" (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) + number_literal)) ;) (expression_statement "*piVar15 = param_2[9];" (assignment_expression "*piVar15 = param_2[9]" (pointer_expression "*piVar15" * identifier) = (subscript_expression "param_2[9]" identifier [ number_literal ])) ;) (expression_statement "QuantizeImage(piVar15,param_2,param_3);" (call_expression "QuantizeImage(piVar15,param_2,param_3)" identifier (argument_list "(piVar15,param_2,param_3)" ( identifier , identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(short)param_2[9]);" (call_expression "WriteBlobMSBShort(param_2,(short)param_2[9])" identifier (argument_list "(param_2,(short)param_2[9])" ( identifier , (cast_expression "(short)param_2[9]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "param_2[9]" identifier [ number_literal ])) ))) ;) (if_statement "if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }" if (parenthesized_expression "(param_2[9] == 0)" ( (binary_expression "param_2[9] == 0" (subscript_expression "param_2[9]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }" { (expression_statement "local_64 = 0x12;" (assignment_expression "local_64 = 0x12" identifier = number_literal) ;) (goto_statement "goto LAB_002607b8;" goto statement_identifier ;) })) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (do_statement "do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);" do (compound_statement "{\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        }" { (expression_statement "WriteBlobByte(param_2,local_d4 & 0xff);" (call_expression "WriteBlobByte(param_2,local_d4 & 0xff)" identifier (argument_list "(param_2,local_d4 & 0xff)" ( identifier , (binary_expression "local_d4 & 0xff" identifier & number_literal) ))) ;) (expression_statement "dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);" (assignment_expression "dVar2 = *(double *)(param_2[10] + 0x20 + iVar20)" identifier = (pointer_expression "*(double *)(param_2[10] + 0x20 + iVar20)" * (cast_expression "(double *)(param_2[10] + 0x20 + iVar20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[10] + 0x20 + iVar20)" ( (binary_expression "param_2[10] + 0x20 + iVar20" (binary_expression "param_2[10] + 0x20" (subscript_expression "param_2[10]" identifier [ number_literal ]) + number_literal) + identifier) ))))) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (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            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (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))) ;) (expression_statement "uVar11 = 0xff;" (assignment_expression "uVar11 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }" { (expression_statement "uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar11 = (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 "WriteBlobByte(param_2,uVar11);" (call_expression "WriteBlobByte(param_2,uVar11)" identifier (argument_list "(param_2,uVar11)" ( identifier , identifier ))) ;) (expression_statement "dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);" (assignment_expression "dVar2 = *(double *)(param_2[10] + 0x28 + iVar20)" identifier = (pointer_expression "*(double *)(param_2[10] + 0x28 + iVar20)" * (cast_expression "(double *)(param_2[10] + 0x28 + iVar20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[10] + 0x28 + iVar20)" ( (binary_expression "param_2[10] + 0x28 + iVar20" (binary_expression "param_2[10] + 0x28" (subscript_expression "param_2[10]" identifier [ number_literal ]) + number_literal) + identifier) ))))) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (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            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (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))) ;) (expression_statement "uVar11 = 0xff;" (assignment_expression "uVar11 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }" { (expression_statement "uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar11 = (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 "WriteBlobByte(param_2,uVar11);" (call_expression "WriteBlobByte(param_2,uVar11)" identifier (argument_list "(param_2,uVar11)" ( identifier , identifier ))) ;) (expression_statement "dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);" (assignment_expression "dVar2 = *(double *)(param_2[10] + 0x30 + iVar20)" identifier = (pointer_expression "*(double *)(param_2[10] + 0x30 + iVar20)" * (cast_expression "(double *)(param_2[10] + 0x30 + iVar20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[10] + 0x30 + iVar20)" ( (binary_expression "param_2[10] + 0x30 + iVar20" (binary_expression "param_2[10] + 0x30" (subscript_expression "param_2[10]" identifier [ number_literal ]) + number_literal) + identifier) ))))) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (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            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (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))) ;) (expression_statement "uVar11 = 0xff;" (assignment_expression "uVar11 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }" { (expression_statement "uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar11 = (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 "iVar20 = iVar20 + 0x50;" (assignment_expression "iVar20 = iVar20 + 0x50" identifier = (binary_expression "iVar20 + 0x50" identifier + number_literal)) ;) (expression_statement "WriteBlobByte(param_2,uVar11);" (call_expression "WriteBlobByte(param_2,uVar11)" identifier (argument_list "(param_2,uVar11)" ( identifier , identifier ))) ;) (expression_statement "local_d4 = local_d4 + 1;" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_d4 < (uint)param_2[9])" ( (binary_expression "local_d4 < (uint)param_2[9]" identifier < (cast_expression "(uint)param_2[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[9]" identifier [ number_literal ]))) )) ;) (expression_statement "local_64 = local_d4 * 4 + 0x12;" (assignment_expression "local_64 = local_d4 * 4 + 0x12" identifier = (binary_expression "local_d4 * 4 + 0x12" (binary_expression "local_d4 * 4" identifier * number_literal) + number_literal)) ;) (expression_statement "local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);" (assignment_expression "local_60 = (uint)(0xffffffef < local_d4 * 4 + 2)" identifier = (call_expression "(uint)(0xffffffef < local_d4 * 4 + 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xffffffef < local_d4 * 4 + 2)" ( (binary_expression "0xffffffef < local_d4 * 4 + 2" number_literal < (binary_expression "local_d4 * 4 + 2" (binary_expression "local_d4 * 4" identifier * number_literal) + number_literal)) )))) ;) }))) (expression_statement "lVar32 = CONCAT44(local_60,local_64);" (assignment_expression "lVar32 = CONCAT44(local_60,local_64)" identifier = (call_expression "CONCAT44(local_60,local_64)" identifier (argument_list "(local_60,local_64)" ( identifier , identifier )))) ;) (if_statement "if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }" if (parenthesized_expression "((short)local_48 < 0)" ( (binary_expression "(short)local_48 < 0" (cast_expression "(short)local_48" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) < number_literal) )) (compound_statement "{\n        WriteBlobMSBShort(param_2,0);\n      }" { (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) })) (expression_statement "local_7c = (char *)0x0;" (assignment_expression "local_7c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar29 = param_2;" (assignment_expression "piVar29 = param_2" identifier = identifier) ;) (if_statement "if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }" if (parenthesized_expression "((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0))" ( (binary_expression "(*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)" (parenthesized_expression "(*param_1 == 7)" ( (binary_expression "*param_1 == 7" (pointer_expression "*param_1" * identifier) == number_literal) )) && (parenthesized_expression "(local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)" ( (comma_expression "local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0" (assignment_expression "local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1)" identifier = (cast_expression "(char *)AcquireQuantumMemory(uVar21 + 0x100,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(uVar21 + 0x100,1)" identifier (argument_list "(uVar21 + 0x100,1)" ( (binary_expression "uVar21 + 0x100" identifier + number_literal) , number_literal ))))) , (binary_expression "local_7c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }" { (expression_statement "DestroyQuantizeInfo(piVar15);" (call_expression "DestroyQuantizeInfo(piVar15)" identifier (argument_list "(piVar15)" ( identifier ))) ;) (expression_statement "ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);" (call_expression "ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6)" identifier (argument_list "(param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6)" ( identifier , (string_literal ""coders/palm.c"" " string_content ") , (string_literal ""WritePALMImage"" " 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 "piVar15 = (int *)param_1[3];" (assignment_expression "piVar15 = (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 ]))) ;) (while_statement "while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }" while (parenthesized_expression "(piVar9 = param_2, piVar15 != (int *)0x0)" ( (comma_expression "piVar9 = param_2, piVar15 != (int *)0x0" (assignment_expression "piVar9 = param_2" identifier = identifier) , (binary_expression "piVar15 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }" { (expression_statement "piVar15 = (int *)piVar9[0xccf];" (assignment_expression "piVar15 = (int *)piVar9[0xccf]" identifier = (cast_expression "(int *)piVar9[0xccf]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[0xccf]" identifier [ number_literal ]))) ;) (expression_statement "param_2 = piVar15;" (assignment_expression "param_2 = piVar15" identifier = identifier) ;) (expression_statement "piVar29 = piVar9;" (assignment_expression "piVar29 = piVar9" identifier = identifier) ;) })) (labeled_statement "LAB_0026128c:\n        CloseBlob(piVar29);" statement_identifier : (expression_statement "CloseBlob(piVar29);" (call_expression "CloseBlob(piVar29)" identifier (argument_list "(piVar29)" ( identifier ))) ;)) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);" (assignment_expression "pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1)" identifier = (cast_expression "(char *)AcquireQuantumMemory(uVar21 + 0x100,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(uVar21 + 0x100,1)" identifier (argument_list "(uVar21 + 0x100,1)" ( (binary_expression "uVar21 + 0x100" identifier + number_literal) , number_literal ))))) ;) (if_statement "if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }" if (parenthesized_expression "(pcVar18 == (char *)0x0)" ( (binary_expression "pcVar18 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }" { (if_statement "if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }" if (parenthesized_expression "(local_7c != (char *)0x0)" ( (binary_expression "local_7c != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          RelinquishMagickMemory(local_7c);\n        }" { (expression_statement "RelinquishMagickMemory(local_7c);" (call_expression "RelinquishMagickMemory(local_7c)" identifier (argument_list "(local_7c)" ( identifier ))) ;) })) (expression_statement "DestroyQuantizeInfo(piVar15);" (call_expression "DestroyQuantizeInfo(piVar15)" identifier (argument_list "(piVar15)" ( identifier ))) ;) (expression_statement "ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);" (call_expression "ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6)" identifier (argument_list "(param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6)" ( identifier , (string_literal ""coders/palm.c"" " string_content ") , (string_literal ""WritePALMImage"" " 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 "piVar15 = (int *)param_1[3];" (assignment_expression "piVar15 = (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 ]))) ;) (while_statement "while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }" while (parenthesized_expression "(piVar9 = param_2, piVar15 != (int *)0x0)" ( (comma_expression "piVar9 = param_2, piVar15 != (int *)0x0" (assignment_expression "piVar9 = param_2" identifier = identifier) , (binary_expression "piVar15 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }" { (expression_statement "piVar15 = (int *)piVar9[0xccf];" (assignment_expression "piVar15 = (int *)piVar9[0xccf]" identifier = (cast_expression "(int *)piVar9[0xccf]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[0xccf]" identifier [ number_literal ]))) ;) (expression_statement "param_2 = piVar15;" (assignment_expression "param_2 = piVar15" identifier = identifier) ;) (expression_statement "piVar29 = piVar9;" (assignment_expression "piVar29 = piVar9" identifier = identifier) ;) })) (goto_statement "goto LAB_0026128c;" goto statement_identifier ;) })) (if_statement "if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\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_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }" { (expression_statement "local_b4 = (byte)local_a0;" (assignment_expression "local_b4 = (byte)local_a0" identifier = (cast_expression "(byte)local_a0" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (do_statement "do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);" do (compound_statement "{\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        }" { (expression_statement "memset(pcVar18,0,uVar21);" (call_expression "memset(pcVar18,0,uVar21)" identifier (argument_list "(pcVar18,0,uVar21)" ( identifier , number_literal , identifier ))) ;) (expression_statement "iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);" (assignment_expression "iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3)" identifier = (call_expression "GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3)" identifier (argument_list "(param_2,0,iVar20,param_2[6],1,param_3)" ( identifier , number_literal , identifier , (subscript_expression "param_2[6]" identifier [ number_literal ]) , number_literal , identifier )))) ;) (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_ac = param_2[6];" (assignment_expression "local_ac = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (if_statement "if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }" if (parenthesized_expression "(local_a0 == 0x10)" ( (binary_expression "local_a0 == 0x10" identifier == number_literal) )) (compound_statement "{\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }" { (if_statement "if ((int)local_ac < 1) goto LAB_0026097b;" if (parenthesized_expression "((int)local_ac < 1)" ( (binary_expression "(int)local_ac < 1" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0026097b;" goto statement_identifier ;)) (expression_statement "local_b8 = (char *)0x0;" (assignment_expression "local_b8 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);" do (compound_statement "{\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            }" { (expression_statement "iVar25 = param_2[0xaa];" (assignment_expression "iVar25 = param_2[0xaa]" identifier = (subscript_expression "param_2[0xaa]" identifier [ number_literal ])) ;) (expression_statement "dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);" (assignment_expression "dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8)" identifier = (pointer_expression "*(double *)(iVar19 + *(int *)(iVar25 + 8) * 8)" * (cast_expression "(double *)(iVar19 + *(int *)(iVar25 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + *(int *)(iVar25 + 8) * 8)" ( (binary_expression "iVar19 + *(int *)(iVar25 + 8) * 8" identifier + (binary_expression "*(int *)(iVar25 + 8) * 8" (pointer_expression "*(int *)(iVar25 + 8)" * (cast_expression "(int *)(iVar25 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 8)" ( (binary_expression "iVar25 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);" (assignment_expression "dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8)" identifier = (pointer_expression "*(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8)" * (cast_expression "(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + *(int *)(iVar25 + 0x14) * 8)" ( (binary_expression "iVar19 + *(int *)(iVar25 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar25 + 0x14) * 8" (pointer_expression "*(int *)(iVar25 + 0x14)" * (cast_expression "(int *)(iVar25 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x14)" ( (binary_expression "iVar25 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);" (assignment_expression "dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8)" identifier = (pointer_expression "*(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8)" * (cast_expression "(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + *(int *)(iVar25 + 0x20) * 8)" ( (binary_expression "iVar19 + *(int *)(iVar25 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar25 + 0x20) * 8" (pointer_expression "*(int *)(iVar25 + 0x20)" * (cast_expression "(int *)(iVar25 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x20)" ( (binary_expression "iVar25 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;" (assignment_expression "uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff" identifier = (binary_expression "(((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff" (binary_expression "(((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800" (binary_expression "(((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20" (parenthesized_expression "(((int)ROUND(dVar4) * 0x3f) / 0xffff)" ( (binary_expression "((int)ROUND(dVar4) * 0x3f) / 0xffff" (parenthesized_expression "((int)ROUND(dVar4) * 0x3f)" ( (binary_expression "(int)ROUND(dVar4) * 0x3f" (cast_expression "(int)ROUND(dVar4)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar4)" identifier (argument_list "(dVar4)" ( identifier )))) * number_literal) )) / number_literal) )) * number_literal) | (binary_expression "(((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800" (parenthesized_expression "(((int)ROUND(dVar2) * 0x1f) / 0xffff)" ( (binary_expression "((int)ROUND(dVar2) * 0x1f) / 0xffff" (parenthesized_expression "((int)ROUND(dVar2) * 0x1f)" ( (binary_expression "(int)ROUND(dVar2) * 0x1f" (cast_expression "(int)ROUND(dVar2)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier )))) * number_literal) )) / number_literal) )) * number_literal)) | (binary_expression "((int)ROUND(dVar3) * 0x1f) / 0xffff" (parenthesized_expression "((int)ROUND(dVar3) * 0x1f)" ( (binary_expression "(int)ROUND(dVar3) * 0x1f" (cast_expression "(int)ROUND(dVar3)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier )))) * number_literal) )) / number_literal))) ;) (if_statement "if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }" if (parenthesized_expression "((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0))" ( (binary_expression "(*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)" (parenthesized_expression "(*(int *)(iVar25 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar25 + 0x34) != 0" (pointer_expression "*(int *)(iVar25 + 0x34)" * (cast_expression "(int *)(iVar25 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x34)" ( (binary_expression "iVar25 + 0x34" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)" ( (binary_expression "*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0" (pointer_expression "*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8)" * (cast_expression "(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + *(int *)(iVar25 + 0x38) * 8)" ( (binary_expression "iVar19 + *(int *)(iVar25 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar25 + 0x38) * 8" (pointer_expression "*(int *)(iVar25 + 0x38)" * (cast_expression "(int *)(iVar25 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x38)" ( (binary_expression "iVar25 + 0x38" identifier + number_literal) )))) * number_literal)) )))) == number_literal) ))) )) (compound_statement "{\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }" { (expression_statement "local_48 = local_48 | 0x2000;" (assignment_expression "local_48 = local_48 | 0x2000" identifier = (binary_expression "local_48 | 0x2000" identifier | number_literal)) ;) (expression_statement "local_94 = dVar2;" (assignment_expression "local_94 = dVar2" identifier = identifier) ;) (expression_statement "local_8c = dVar3;" (assignment_expression "local_8c = dVar3" identifier = identifier) ;) (expression_statement "local_84 = dVar4;" (assignment_expression "local_84 = dVar4" identifier = identifier) ;) })) (expression_statement "pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);" (assignment_expression "pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8)" (subscript_expression "pcVar18[(int)local_b8 * 2]" identifier [ (binary_expression "(int)local_b8 * 2" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]) = (cast_expression "(char)(uVar17 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar17 >> 8)" ( (binary_expression "uVar17 >> 8" identifier >> number_literal) )))) ;) (expression_statement "pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;" (assignment_expression "pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17" (subscript_expression "pcVar18[(int)local_b8 * 2 + 1]" identifier [ (binary_expression "(int)local_b8 * 2 + 1" (binary_expression "(int)local_b8 * 2" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) = (cast_expression "(char)uVar17" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "local_b8 = (char *)((int)local_b8 + 1);" (assignment_expression "local_b8 = (char *)((int)local_b8 + 1)" identifier = (cast_expression "(char *)((int)local_b8 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b8 + 1)" ( (binary_expression "(int)local_b8 + 1" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar19 = iVar19 + param_2[0xa6] * 8;" (assignment_expression "iVar19 = iVar19 + param_2[0xa6] * 8" identifier = (binary_expression "iVar19 + param_2[0xa6] * 8" identifier + (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" identifier [ number_literal ]) * number_literal))) ;) }) while (parenthesized_expression "((int)local_b8 < param_2[6])" ( (binary_expression "(int)local_b8 < param_2[6]" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) < (subscript_expression "param_2[6]" identifier [ number_literal ])) )) ;) (expression_statement "iVar19 = *param_1;" (assignment_expression "iVar19 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (iVar19 != 0x13) goto LAB_0026098a;" if (parenthesized_expression "(iVar19 != 0x13)" ( (binary_expression "iVar19 != 0x13" identifier != number_literal) )) (goto_statement "goto LAB_0026098a;" goto statement_identifier ;)) (labeled_statement "LAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }" statement_identifier : (if_statement "if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }" if (parenthesized_expression "(0 < (int)uVar21)" ( (binary_expression "0 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);" do (compound_statement "{\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              }" { (expression_statement "cVar27 = pcVar18[iVar19];" (assignment_expression "cVar27 = pcVar18[iVar19]" identifier = (subscript_expression "pcVar18[iVar19]" identifier [ identifier ])) ;) (expression_statement "iVar25 = iVar19 + 1;" (assignment_expression "iVar25 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (if_statement "if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }" if (parenthesized_expression "(cVar27 == pcVar18[iVar19 + 1])" ( (binary_expression "cVar27 == pcVar18[iVar19 + 1]" identifier == (subscript_expression "pcVar18[iVar19 + 1]" identifier [ (binary_expression "iVar19 + 1" identifier + number_literal) ])) )) (compound_statement "{\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }" { (if_statement "if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }" if (parenthesized_expression "((int)uVar21 <= iVar25)" ( (binary_expression "(int)uVar21 <= iVar25" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }" { (expression_statement "WriteBlobByte(param_2,1);" (call_expression "WriteBlobByte(param_2,1)" identifier (argument_list "(param_2,1)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobByte(param_2,cVar27);" (call_expression "WriteBlobByte(param_2,cVar27)" identifier (argument_list "(param_2,cVar27)" ( identifier , identifier ))) ;) (break_statement "break;" break ;) })) (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) (do_statement "do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);" do (compound_statement "{\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  }" { (expression_statement "uVar17 = uVar17 + 1;" (assignment_expression "uVar17 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) (expression_statement "iVar25 = iVar19 + uVar17;" (assignment_expression "iVar25 = iVar19 + uVar17" identifier = (binary_expression "iVar19 + uVar17" identifier + identifier)) ;) (if_statement "if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;" if (parenthesized_expression "(((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17))" ( (binary_expression "((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)" (parenthesized_expression "((pcVar18 + iVar19)[uVar17] != cVar27)" ( (binary_expression "(pcVar18 + iVar19)[uVar17] != cVar27" (subscript_expression "(pcVar18 + iVar19)[uVar17]" (parenthesized_expression "(pcVar18 + iVar19)" ( (binary_expression "pcVar18 + iVar19" identifier + identifier) )) [ identifier ]) != identifier) )) || (parenthesized_expression "(0xfe < uVar17)" ( (binary_expression "0xfe < uVar17" number_literal < identifier) ))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(iVar25 < (int)uVar21)" ( (binary_expression "iVar25 < (int)uVar21" identifier < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) }) (else_clause "else {\n                  uVar17 = 1;\n                }" else (compound_statement "{\n                  uVar17 = 1;\n                }" { (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) }))) (expression_statement "WriteBlobByte(param_2,uVar17);" (call_expression "WriteBlobByte(param_2,uVar17)" identifier (argument_list "(param_2,uVar17)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobByte(param_2,cVar27);" (call_expression "WriteBlobByte(param_2,cVar27)" identifier (argument_list "(param_2,cVar27)" ( identifier , identifier ))) ;) (expression_statement "iVar19 = iVar25;" (assignment_expression "iVar19 = iVar25" identifier = identifier) ;) }) while (parenthesized_expression "(iVar25 < (int)uVar21)" ( (binary_expression "iVar25 < (int)uVar21" identifier < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) }))) }) (else_clause "else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }" else (compound_statement "{\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }" { (expression_statement "uVar17 = (uint)(byte)(8 - local_45);" (assignment_expression "uVar17 = (uint)(byte)(8 - local_45)" identifier = (call_expression "(uint)(byte)(8 - local_45)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(8 - local_45)" ( (binary_expression "8 - local_45" number_literal - identifier) )))) ;) (expression_statement "local_b8 = pcVar18;" (assignment_expression "local_b8 = pcVar18" identifier = identifier) ;) (if_statement "if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }" if (parenthesized_expression "((int)local_ac < 1)" ( (binary_expression "(int)local_ac < 1" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              cVar27 = '\0';\n            }" { (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }" else (if_statement "if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }" if (parenthesized_expression "(local_a0 < 8)" ( (binary_expression "local_a0 < 8" identifier < number_literal) )) (compound_statement "{\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }" { (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = uVar17;" (assignment_expression "uVar23 = uVar17" identifier = identifier) ;) (do_statement "do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);" do (compound_statement "{\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              }" { (while_statement "while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }" { (if_statement "if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }" if (parenthesized_expression "(*(int *)(param_2[0xaa] + 0x40) == 0)" ( (binary_expression "*(int *)(param_2[0xaa] + 0x40) == 0" (pointer_expression "*(int *)(param_2[0xaa] + 0x40)" * (cast_expression "(int *)(param_2[0xaa] + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0xaa] + 0x40)" ( (binary_expression "param_2[0xaa] + 0x40" (subscript_expression "param_2[0xaa]" identifier [ number_literal ]) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    dVar2 = 0.0;\n                  }" { (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }" else (compound_statement "{\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }" { (expression_statement "dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);" (assignment_expression "dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8)" identifier = (pointer_expression "*(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8)" * (cast_expression "(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8)" ( (binary_expression "iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8" identifier + (binary_expression "*(int *)(param_2[0xaa] + 0x44) * 8" (pointer_expression "*(int *)(param_2[0xaa] + 0x44)" * (cast_expression "(int *)(param_2[0xaa] + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0xaa] + 0x44)" ( (binary_expression "param_2[0xaa] + 0x44" (subscript_expression "param_2[0xaa]" identifier [ number_literal ]) + number_literal) )))) * number_literal)) ))))) ;) }))) (expression_statement "dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);" (assignment_expression "dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1)" identifier = (binary_expression "dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1)" identifier * (cast_expression "(double)((1 << (local_b4 & 0x1f)) + -1)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((1 << (local_b4 & 0x1f)) + -1)" ( (binary_expression "(1 << (local_b4 & 0x1f)) + -1" (parenthesized_expression "(1 << (local_b4 & 0x1f))" ( (binary_expression "1 << (local_b4 & 0x1f)" number_literal << (parenthesized_expression "(local_b4 & 0x1f)" ( (binary_expression "local_b4 & 0x1f" identifier & number_literal) ))) )) + number_literal) ))))) ;) (if_statement "if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }" if (parenthesized_expression "(1 < param_2[9] - 1U)" ( (binary_expression "1 < param_2[9] - 1U" number_literal < (binary_expression "param_2[9] - 1U" (subscript_expression "param_2[9]" identifier [ number_literal ]) - number_literal)) )) (compound_statement "{\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }" { (expression_statement "local_cc = (ulonglong)(param_2[9] - 1U);" (assignment_expression "local_cc = (ulonglong)(param_2[9] - 1U)" identifier = (call_expression "(ulonglong)(param_2[9] - 1U)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(param_2[9] - 1U)" ( (binary_expression "param_2[9] - 1U" (subscript_expression "param_2[9]" identifier [ number_literal ]) - number_literal) )))) ;) (expression_statement "dVar2 = dVar2 / (double)local_cc;" (assignment_expression "dVar2 = dVar2 / (double)local_cc" identifier = (binary_expression "dVar2 / (double)local_cc" identifier / (cast_expression "(double)local_cc" ( (type_descriptor "double" primitive_type) ) identifier))) ;) })) (expression_statement "uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);" (assignment_expression "uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f)" identifier = (binary_expression "uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f)" identifier | (binary_expression "(uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f)" (cast_expression "(uint)(byte)(short)ROUND(dVar2)" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)(short)ROUND(dVar2)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar2)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier )))))) << (parenthesized_expression "((byte)uVar23 & 0x1f)" ( (binary_expression "(byte)uVar23 & 0x1f" (cast_expression "(byte)uVar23" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) (expression_statement "cVar27 = (char)uVar28;" (assignment_expression "cVar27 = (char)uVar28" identifier = (cast_expression "(char)uVar28" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (uVar23 != 0) break;" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "*local_b8 = cVar27;" (assignment_expression "*local_b8 = cVar27" (pointer_expression "*local_b8" * identifier) = identifier) ;) (expression_statement "iVar19 = iVar19 + param_2[0xa6] * 8;" (assignment_expression "iVar19 = iVar19 + param_2[0xa6] * 8" identifier = (binary_expression "iVar19 + param_2[0xa6] * 8" identifier + (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" identifier [ number_literal ]) * number_literal))) ;) (expression_statement "local_ac = param_2[6];" (assignment_expression "local_ac = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (if_statement "if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }" if (parenthesized_expression "((int)local_ac <= iVar25)" ( (binary_expression "(int)local_ac <= iVar25" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }" { (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_b8 = local_b8 + 1;" (assignment_expression "local_b8 = local_b8 + 1" identifier = (binary_expression "local_b8 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0026095c;" goto statement_identifier ;) })) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = uVar17;" (assignment_expression "uVar23 = uVar17" identifier = identifier) ;) (expression_statement "local_b8 = local_b8 + 1;" (assignment_expression "local_b8 = local_b8 + 1" identifier = (binary_expression "local_b8 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "iVar19 = iVar19 + param_2[0xa6] * 8;" (assignment_expression "iVar19 = iVar19 + param_2[0xa6] * 8" identifier = (binary_expression "iVar19 + param_2[0xa6] * 8" identifier + (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" identifier [ number_literal ]) * number_literal))) ;) (expression_statement "local_ac = param_2[6];" (assignment_expression "local_ac = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "uVar23 = uVar23 - local_a0;" (assignment_expression "uVar23 = uVar23 - local_a0" identifier = (binary_expression "uVar23 - local_a0" identifier - identifier)) ;) }) while (parenthesized_expression "(iVar25 < (int)local_ac)" ( (binary_expression "iVar25 < (int)local_ac" identifier < (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) }) (else_clause "else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }" else (compound_statement "{\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }" { (expression_statement "local_b8 = (char *)param_2[0xaa];" (assignment_expression "local_b8 = (char *)param_2[0xaa]" identifier = (cast_expression "(char *)param_2[0xaa]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[0xaa]" identifier [ number_literal ]))) ;) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = uVar17;" (assignment_expression "uVar23 = uVar17" identifier = identifier) ;) (expression_statement "local_9c = pcVar18;" (assignment_expression "local_9c = pcVar18" identifier = identifier) ;) (do_statement "do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);" do (compound_statement "{\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              }" { (while_statement "while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }" { (if_statement "if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }" if (parenthesized_expression "(*(int *)((int)local_b8 + 0x40) != 0)" ( (binary_expression "*(int *)((int)local_b8 + 0x40) != 0" (pointer_expression "*(int *)((int)local_b8 + 0x40)" * (cast_expression "(int *)((int)local_b8 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b8 + 0x40)" ( (binary_expression "(int)local_b8 + 0x40" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }" { (expression_statement "uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);" (assignment_expression "uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f)" identifier = (binary_expression "uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f)" identifier | (binary_expression "(uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f)" (cast_expression "(uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8))" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8))" identifier (argument_list "(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8))" ( (pointer_expression "*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)" * (cast_expression "(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)" ( (binary_expression "iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8" identifier + (binary_expression "*(int *)((int)local_b8 +\n                                                                                  0x44) * 8" (pointer_expression "*(int *)((int)local_b8 +\n                                                                                  0x44)" * (cast_expression "(int *)((int)local_b8 +\n                                                                                  0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b8 +\n                                                                                  0x44)" ( (binary_expression "(int)local_b8 +\n                                                                                  0x44" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) * number_literal)) )))) )))))) << (parenthesized_expression "((byte)uVar23 & 0x1f)" ( (binary_expression "(byte)uVar23 & 0x1f" (cast_expression "(byte)uVar23" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) })) (expression_statement "cVar27 = (char)uVar28;" (assignment_expression "cVar27 = (char)uVar28" identifier = (cast_expression "(char)uVar28" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (uVar23 != 0) break;" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "*local_9c = cVar27;" (assignment_expression "*local_9c = cVar27" (pointer_expression "*local_9c" * identifier) = identifier) ;) (expression_statement "local_ac = param_2[6];" (assignment_expression "local_ac = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "iVar19 = iVar19 + param_2[0xa6] * 8;" (assignment_expression "iVar19 = iVar19 + param_2[0xa6] * 8" identifier = (binary_expression "iVar19 + param_2[0xa6] * 8" identifier + (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" identifier [ number_literal ]) * number_literal))) ;) (if_statement "if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }" if (parenthesized_expression "((int)local_ac <= iVar25)" ( (binary_expression "(int)local_ac <= iVar25" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }" { (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_b8 = local_9c + 1;" (assignment_expression "local_b8 = local_9c + 1" identifier = (binary_expression "local_9c + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0026095c;" goto statement_identifier ;) })) (expression_statement "local_b8 = (char *)param_2[0xaa];" (assignment_expression "local_b8 = (char *)param_2[0xaa]" identifier = (cast_expression "(char *)param_2[0xaa]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[0xaa]" identifier [ number_literal ]))) ;) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = uVar17;" (assignment_expression "uVar23 = uVar17" identifier = identifier) ;) (expression_statement "local_9c = local_9c + 1;" (assignment_expression "local_9c = local_9c + 1" identifier = (binary_expression "local_9c + 1" identifier + number_literal)) ;) })) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "iVar19 = iVar19 + param_2[0xa6] * 8;" (assignment_expression "iVar19 = iVar19 + param_2[0xa6] * 8" identifier = (binary_expression "iVar19 + param_2[0xa6] * 8" identifier + (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" identifier [ number_literal ]) * number_literal))) ;) (expression_statement "uVar23 = uVar23 - local_a0;" (assignment_expression "uVar23 = uVar23 - local_a0" identifier = (binary_expression "uVar23 - local_a0" identifier - identifier)) ;) }) while (parenthesized_expression "(iVar25 < (int)local_ac)" ( (binary_expression "iVar25 < (int)local_ac" identifier < (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "local_b8 = local_9c;" (assignment_expression "local_b8 = local_9c" identifier = identifier) ;) }))))) (labeled_statement "LAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }" statement_identifier : (if_statement "if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }" if (parenthesized_expression "((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0)" ( (binary_expression "(int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0" (cast_expression "(int)((ulonglong)local_ac % (8 / (ulonglong)local_a0))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)local_ac % (8 / (ulonglong)local_a0))" ( (binary_expression "(ulonglong)local_ac % (8 / (ulonglong)local_a0)" (cast_expression "(ulonglong)local_ac" ( (type_descriptor "ulonglong" type_identifier) ) identifier) % (parenthesized_expression "(8 / (ulonglong)local_a0)" ( (binary_expression "8 / (ulonglong)local_a0" number_literal / (cast_expression "(ulonglong)local_a0" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ))) ))) != number_literal) )) (compound_statement "{\n              *local_b8 = cVar27;\n            }" { (expression_statement "*local_b8 = cVar27;" (assignment_expression "*local_b8 = cVar27" (pointer_expression "*local_b8" * identifier) = identifier) ;) }))) (labeled_statement "LAB_0026097b:\n            iVar19 = *param_1;" statement_identifier : (expression_statement "iVar19 = *param_1;" (assignment_expression "iVar19 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;)) (if_statement "if (iVar19 == 0x13) goto LAB_00260d43;" if (parenthesized_expression "(iVar19 == 0x13)" ( (binary_expression "iVar19 == 0x13" identifier == number_literal) )) (goto_statement "goto LAB_00260d43;" goto statement_identifier ;)) (labeled_statement "LAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }" statement_identifier : (if_statement "if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }" if (parenthesized_expression "(iVar19 == 7)" ( (binary_expression "iVar19 == 7" identifier == number_literal) )) (compound_statement "{\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }" { (if_statement "if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }" if (parenthesized_expression "(0 < (int)uVar21)" ( (binary_expression "0 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }" { (expression_statement "pcVar24 = pcVar18;" (assignment_expression "pcVar24 = pcVar18" identifier = identifier) ;) (expression_statement "uVar17 = uVar21;" (assignment_expression "uVar17 = uVar21" identifier = identifier) ;) (expression_statement "pcVar1 = local_7c;" (assignment_expression "pcVar1 = local_7c" identifier = identifier) ;) (do_statement "do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);" do (compound_statement "{\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                }" { (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }" if (parenthesized_expression "((int)uVar17 < 9)" ( (binary_expression "(int)uVar17 < 9" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    uVar23 = uVar17;\n                  }" { (expression_statement "uVar23 = uVar17;" (assignment_expression "uVar23 = uVar17" identifier = identifier) ;) })) (if_statement "if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }" { (expression_statement "local_28[0] = *pcVar24;" (assignment_expression "local_28[0] = *pcVar24" (subscript_expression "local_28[0]" identifier [ number_literal ]) = (pointer_expression "*pcVar24" * identifier)) ;) (if_statement "if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" if (parenthesized_expression "(uVar17 == 1)" ( (binary_expression "uVar17 == 1" identifier == number_literal) )) (compound_statement "{\n                      bVar10 = 0x80;\n                    }" { (expression_statement "bVar10 = 0x80;" (assignment_expression "bVar10 = 0x80" identifier = number_literal) ;) }) (else_clause "else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" else (compound_statement "{\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" { (expression_statement "local_28[1] = pcVar24[1];" (assignment_expression "local_28[1] = pcVar24[1]" (subscript_expression "local_28[1]" identifier [ number_literal ]) = (subscript_expression "pcVar24[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" if (parenthesized_expression "(uVar17 == 2)" ( (binary_expression "uVar17 == 2" identifier == number_literal) )) (compound_statement "{\n                        bVar10 = 0xc0;\n                      }" { (expression_statement "bVar10 = 0xc0;" (assignment_expression "bVar10 = 0xc0" identifier = number_literal) ;) }) (else_clause "else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" else (compound_statement "{\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" { (expression_statement "local_28[2] = pcVar24[2];" (assignment_expression "local_28[2] = pcVar24[2]" (subscript_expression "local_28[2]" identifier [ number_literal ]) = (subscript_expression "pcVar24[2]" identifier [ number_literal ])) ;) (if_statement "if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }" if (parenthesized_expression "(uVar17 == 3)" ( (binary_expression "uVar17 == 3" identifier == number_literal) )) (compound_statement "{\n                          bVar10 = 0xe0;\n                        }" { (expression_statement "bVar10 = 0xe0;" (assignment_expression "bVar10 = 0xe0" identifier = number_literal) ;) }) (else_clause "else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }" else (compound_statement "{\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }" { (expression_statement "local_28[3] = pcVar24[3];" (assignment_expression "local_28[3] = pcVar24[3]" (subscript_expression "local_28[3]" identifier [ number_literal ]) = (subscript_expression "pcVar24[3]" identifier [ number_literal ])) ;) (if_statement "if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }" if (parenthesized_expression "(uVar17 == 4)" ( (binary_expression "uVar17 == 4" identifier == number_literal) )) (compound_statement "{\n                            bVar10 = 0xf0;\n                          }" { (expression_statement "bVar10 = 0xf0;" (assignment_expression "bVar10 = 0xf0" identifier = number_literal) ;) }) (else_clause "else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }" else (compound_statement "{\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }" { (expression_statement "local_24 = pcVar24[4];" (assignment_expression "local_24 = pcVar24[4]" identifier = (subscript_expression "pcVar24[4]" identifier [ number_literal ])) ;) (if_statement "if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }" if (parenthesized_expression "(uVar17 == 5)" ( (binary_expression "uVar17 == 5" identifier == number_literal) )) (compound_statement "{\n                              bVar10 = 0xf8;\n                            }" { (expression_statement "bVar10 = 0xf8;" (assignment_expression "bVar10 = 0xf8" identifier = number_literal) ;) }) (else_clause "else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }" else (compound_statement "{\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }" { (expression_statement "local_23 = pcVar24[5];" (assignment_expression "local_23 = pcVar24[5]" identifier = (subscript_expression "pcVar24[5]" identifier [ number_literal ])) ;) (if_statement "if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }" if (parenthesized_expression "(uVar17 == 6)" ( (binary_expression "uVar17 == 6" identifier == number_literal) )) (compound_statement "{\n                                bVar10 = 0xfc;\n                              }" { (expression_statement "bVar10 = 0xfc;" (assignment_expression "bVar10 = 0xfc" identifier = number_literal) ;) }) (else_clause "else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }" else (compound_statement "{\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }" { (expression_statement "local_22 = pcVar24[6];" (assignment_expression "local_22 = pcVar24[6]" identifier = (subscript_expression "pcVar24[6]" identifier [ number_literal ])) ;) (if_statement "if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }" if (parenthesized_expression "((int)uVar17 < 8)" ( (binary_expression "(int)uVar17 < 8" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                                  bVar10 = 0xfe;\n                                }" { (expression_statement "bVar10 = 0xfe;" (assignment_expression "bVar10 = 0xfe" identifier = number_literal) ;) }) (else_clause "else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }" else (compound_statement "{\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }" { (expression_statement "local_21 = pcVar24[7];" (assignment_expression "local_21 = pcVar24[7]" identifier = (subscript_expression "pcVar24[7]" identifier [ number_literal ])) ;) (expression_statement "bVar10 = 0xff;" (assignment_expression "bVar10 = 0xff" identifier = number_literal) ;) }))) }))) }))) }))) }))) }))) }))) (expression_statement "local_78 = local_28 + uVar23;" (assignment_expression "local_78 = local_28 + uVar23" identifier = (binary_expression "local_28 + uVar23" identifier + identifier)) ;) }) (else_clause "else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" else (compound_statement "{\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" { (if_statement "if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }" if (parenthesized_expression "(*pcVar24 == *pcVar1)" ( (binary_expression "*pcVar24 == *pcVar1" (pointer_expression "*pcVar24" * identifier) == (pointer_expression "*pcVar1" * identifier)) )) (compound_statement "{\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }" { (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (expression_statement "local_78 = local_28;" (assignment_expression "local_78 = local_28" identifier = identifier) ;) }) (else_clause "else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }" else (compound_statement "{\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }" { (expression_statement "bVar10 = 0x80;" (assignment_expression "bVar10 = 0x80" identifier = number_literal) ;) (expression_statement "local_78 = local_28 + 1;" (assignment_expression "local_78 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) (expression_statement "local_28[0] = *pcVar24;" (assignment_expression "local_28[0] = *pcVar24" (subscript_expression "local_28[0]" identifier [ number_literal ]) = (pointer_expression "*pcVar24" * identifier)) ;) }))) (if_statement "if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" if (parenthesized_expression "(uVar17 != 1)" ( (binary_expression "uVar17 != 1" identifier != number_literal) )) (compound_statement "{\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" { (expression_statement "local_b0 = local_78;" (assignment_expression "local_b0 = local_78" identifier = identifier) ;) (if_statement "if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }" if (parenthesized_expression "(pcVar1[1] != pcVar24[1])" ( (binary_expression "pcVar1[1] != pcVar24[1]" (subscript_expression "pcVar1[1]" identifier [ number_literal ]) != (subscript_expression "pcVar24[1]" identifier [ number_literal ])) )) (compound_statement "{\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }" { (expression_statement "local_b0 = local_78 + 1;" (assignment_expression "local_b0 = local_78 + 1" identifier = (binary_expression "local_78 + 1" identifier + number_literal)) ;) (expression_statement "bVar10 = bVar10 | 0x40;" (assignment_expression "bVar10 = bVar10 | 0x40" identifier = (binary_expression "bVar10 | 0x40" identifier | number_literal)) ;) (expression_statement "*local_78 = pcVar24[1];" (assignment_expression "*local_78 = pcVar24[1]" (pointer_expression "*local_78" * identifier) = (subscript_expression "pcVar24[1]" identifier [ number_literal ])) ;) })) (expression_statement "local_78 = local_b0;" (assignment_expression "local_78 = local_b0" identifier = identifier) ;) (if_statement "if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" if (parenthesized_expression "(uVar17 != 2)" ( (binary_expression "uVar17 != 2" identifier != number_literal) )) (compound_statement "{\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" { (if_statement "if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }" if (parenthesized_expression "(pcVar1[2] != pcVar24[2])" ( (binary_expression "pcVar1[2] != pcVar24[2]" (subscript_expression "pcVar1[2]" identifier [ number_literal ]) != (subscript_expression "pcVar24[2]" identifier [ number_literal ])) )) (compound_statement "{\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }" { (expression_statement "bVar10 = bVar10 | 0x20;" (assignment_expression "bVar10 = bVar10 | 0x20" identifier = (binary_expression "bVar10 | 0x20" identifier | number_literal)) ;) (expression_statement "local_78 = local_b0 + 1;" (assignment_expression "local_78 = local_b0 + 1" identifier = (binary_expression "local_b0 + 1" identifier + number_literal)) ;) (expression_statement "*local_b0 = pcVar24[2];" (assignment_expression "*local_b0 = pcVar24[2]" (pointer_expression "*local_b0" * identifier) = (subscript_expression "pcVar24[2]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }" if (parenthesized_expression "(uVar17 != 3)" ( (binary_expression "uVar17 != 3" identifier != number_literal) )) (compound_statement "{\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }" { (expression_statement "local_b0 = local_78;" (assignment_expression "local_b0 = local_78" identifier = identifier) ;) (if_statement "if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }" if (parenthesized_expression "(pcVar1[3] != pcVar24[3])" ( (binary_expression "pcVar1[3] != pcVar24[3]" (subscript_expression "pcVar1[3]" identifier [ number_literal ]) != (subscript_expression "pcVar24[3]" identifier [ number_literal ])) )) (compound_statement "{\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }" { (expression_statement "local_b0 = local_78 + 1;" (assignment_expression "local_b0 = local_78 + 1" identifier = (binary_expression "local_78 + 1" identifier + number_literal)) ;) (expression_statement "bVar10 = bVar10 | 0x10;" (assignment_expression "bVar10 = bVar10 | 0x10" identifier = (binary_expression "bVar10 | 0x10" identifier | number_literal)) ;) (expression_statement "*local_78 = pcVar24[3];" (assignment_expression "*local_78 = pcVar24[3]" (pointer_expression "*local_78" * identifier) = (subscript_expression "pcVar24[3]" identifier [ number_literal ])) ;) })) (expression_statement "local_78 = local_b0;" (assignment_expression "local_78 = local_b0" identifier = identifier) ;) (if_statement "if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }" if (parenthesized_expression "(uVar17 != 4)" ( (binary_expression "uVar17 != 4" identifier != number_literal) )) (compound_statement "{\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }" { (if_statement "if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }" if (parenthesized_expression "(pcVar1[4] != pcVar24[4])" ( (binary_expression "pcVar1[4] != pcVar24[4]" (subscript_expression "pcVar1[4]" identifier [ number_literal ]) != (subscript_expression "pcVar24[4]" identifier [ number_literal ])) )) (compound_statement "{\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }" { (expression_statement "bVar10 = bVar10 | 8;" (assignment_expression "bVar10 = bVar10 | 8" identifier = (binary_expression "bVar10 | 8" identifier | number_literal)) ;) (expression_statement "local_78 = local_b0 + 1;" (assignment_expression "local_78 = local_b0 + 1" identifier = (binary_expression "local_b0 + 1" identifier + number_literal)) ;) (expression_statement "*local_b0 = pcVar24[4];" (assignment_expression "*local_b0 = pcVar24[4]" (pointer_expression "*local_b0" * identifier) = (subscript_expression "pcVar24[4]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }" if (parenthesized_expression "(uVar17 != 5)" ( (binary_expression "uVar17 != 5" identifier != number_literal) )) (compound_statement "{\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }" { (expression_statement "local_b0 = local_78;" (assignment_expression "local_b0 = local_78" identifier = identifier) ;) (if_statement "if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }" if (parenthesized_expression "(pcVar1[5] != pcVar24[5])" ( (binary_expression "pcVar1[5] != pcVar24[5]" (subscript_expression "pcVar1[5]" identifier [ number_literal ]) != (subscript_expression "pcVar24[5]" identifier [ number_literal ])) )) (compound_statement "{\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }" { (expression_statement "local_b0 = local_78 + 1;" (assignment_expression "local_b0 = local_78 + 1" identifier = (binary_expression "local_78 + 1" identifier + number_literal)) ;) (expression_statement "bVar10 = bVar10 | 4;" (assignment_expression "bVar10 = bVar10 | 4" identifier = (binary_expression "bVar10 | 4" identifier | number_literal)) ;) (expression_statement "*local_78 = pcVar24[5];" (assignment_expression "*local_78 = pcVar24[5]" (pointer_expression "*local_78" * identifier) = (subscript_expression "pcVar24[5]" identifier [ number_literal ])) ;) })) (expression_statement "local_78 = local_b0;" (assignment_expression "local_78 = local_b0" identifier = identifier) ;) (if_statement "if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }" if (parenthesized_expression "(uVar17 != 6)" ( (binary_expression "uVar17 != 6" identifier != number_literal) )) (compound_statement "{\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }" { (if_statement "if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }" if (parenthesized_expression "(pcVar1[6] != pcVar24[6])" ( (binary_expression "pcVar1[6] != pcVar24[6]" (subscript_expression "pcVar1[6]" identifier [ number_literal ]) != (subscript_expression "pcVar24[6]" identifier [ number_literal ])) )) (compound_statement "{\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }" { (expression_statement "bVar10 = bVar10 | 2;" (assignment_expression "bVar10 = bVar10 | 2" identifier = (binary_expression "bVar10 | 2" identifier | number_literal)) ;) (expression_statement "local_78 = local_b0 + 1;" (assignment_expression "local_78 = local_b0 + 1" identifier = (binary_expression "local_b0 + 1" identifier + number_literal)) ;) (expression_statement "*local_b0 = pcVar24[6];" (assignment_expression "*local_b0 = pcVar24[6]" (pointer_expression "*local_b0" * identifier) = (subscript_expression "pcVar24[6]" identifier [ number_literal ])) ;) })) (if_statement "if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }" if (parenthesized_expression "((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7]))" ( (binary_expression "(7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])" (parenthesized_expression "(7 < (int)uVar17)" ( (binary_expression "7 < (int)uVar17" number_literal < (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(pcVar1[7] != pcVar24[7])" ( (binary_expression "pcVar1[7] != pcVar24[7]" (subscript_expression "pcVar1[7]" identifier [ number_literal ]) != (subscript_expression "pcVar24[7]" identifier [ number_literal ])) ))) )) (compound_statement "{\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }" { (expression_statement "bVar10 = bVar10 | 1;" (assignment_expression "bVar10 = bVar10 | 1" identifier = (binary_expression "bVar10 | 1" identifier | number_literal)) ;) (expression_statement "*local_78 = pcVar24[7];" (assignment_expression "*local_78 = pcVar24[7]" (pointer_expression "*local_78" * identifier) = (subscript_expression "pcVar24[7]" identifier [ number_literal ])) ;) (expression_statement "local_78 = local_78 + 1;" (assignment_expression "local_78 = local_78 + 1" identifier = (binary_expression "local_78 + 1" identifier + number_literal)) ;) })) })) })) })) })) })) })) }))) (expression_statement "uVar17 = uVar17 - 8;" (assignment_expression "uVar17 = uVar17 - 8" identifier = (binary_expression "uVar17 - 8" identifier - number_literal)) ;) (expression_statement "WriteBlobByte(param_2,bVar10);" (call_expression "WriteBlobByte(param_2,bVar10)" identifier (argument_list "(param_2,bVar10)" ( identifier , identifier ))) ;) (expression_statement "WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);" (call_expression "WriteBlob(param_2,(int)local_78 - (int)local_28,local_28)" identifier (argument_list "(param_2,(int)local_78 - (int)local_28,local_28)" ( identifier , (binary_expression "(int)local_78 - (int)local_28" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier ))) ;) (expression_statement "pcVar1 = pcVar1 + 8;" (assignment_expression "pcVar1 = pcVar1 + 8" identifier = (binary_expression "pcVar1 + 8" identifier + number_literal)) ;) (expression_statement "pcVar24 = pcVar24 + 8;" (assignment_expression "pcVar24 = pcVar24 + 8" identifier = (binary_expression "pcVar24 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17)" ( (binary_expression "(uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17" (binary_expression "(uVar21 - 8) - (uVar21 - 1 & 0xfffffff8)" (parenthesized_expression "(uVar21 - 8)" ( (binary_expression "uVar21 - 8" identifier - number_literal) )) - (parenthesized_expression "(uVar21 - 1 & 0xfffffff8)" ( (binary_expression "uVar21 - 1 & 0xfffffff8" (binary_expression "uVar21 - 1" identifier - number_literal) & number_literal) ))) != identifier) )) ;) })) (expression_statement "memcpy(local_7c,pcVar18,uVar21);" (call_expression "memcpy(local_7c,pcVar18,uVar21)" identifier (argument_list "(local_7c,pcVar18,uVar21)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }" else (compound_statement "{\n              WriteBlob(param_2,uVar21,pcVar18);\n            }" { (expression_statement "WriteBlob(param_2,uVar21,pcVar18);" (call_expression "WriteBlob(param_2,uVar21,pcVar18)" identifier (argument_list "(param_2,uVar21,pcVar18)" ( identifier , identifier , identifier ))) ;) })))) }))) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar20 < param_2[7])" ( (binary_expression "iVar20 < param_2[7]" identifier < (subscript_expression "param_2[7]" identifier [ number_literal ])) )) ;) })) (if_statement "if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }" if (parenthesized_expression "((local_48 & 0x2000) != 0)" ( (binary_expression "(local_48 & 0x2000) != 0" (parenthesized_expression "(local_48 & 0x2000)" ( (binary_expression "local_48 & 0x2000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }" { (expression_statement "SeekBlob(param_2,lVar31 + 6,0);" (call_expression "SeekBlob(param_2,lVar31 + 6,0)" identifier (argument_list "(param_2,lVar31 + 6,0)" ( identifier , (binary_expression "lVar31 + 6" identifier + number_literal) , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,local_48);" (call_expression "WriteBlobMSBShort(param_2,local_48)" identifier (argument_list "(param_2,local_48)" ( identifier , identifier ))) ;) (expression_statement "lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);" (assignment_expression "lVar32 = SeekBlob(param_2,lVar31 + 0xc,0)" identifier = (call_expression "SeekBlob(param_2,lVar31 + 0xc,0)" identifier (argument_list "(param_2,lVar31 + 0xc,0)" ( identifier , (binary_expression "lVar31 + 0xc" identifier + number_literal) , number_literal )))) ;) (expression_statement "WriteBlobByte(param_2,0);" (call_expression "WriteBlobByte(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) })) (if_statement "if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }" if (parenthesized_expression "(local_a0 == 0x10)" ( (binary_expression "local_a0 == 0x10" identifier == number_literal) )) (compound_statement "{\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }" { (expression_statement "lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);" (assignment_expression "lVar32 = SeekBlob(param_2,lVar31 + 0x14,0)" identifier = (call_expression "SeekBlob(param_2,lVar31 + 0x14,0)" identifier (argument_list "(param_2,lVar31 + 0x14,0)" ( identifier , (binary_expression "lVar31 + 0x14" identifier + number_literal) , number_literal )))) ;) (expression_statement "WriteBlobByte(param_2,0);" (call_expression "WriteBlobByte(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "dVar2 = (double)DAT_00306a38;" (assignment_expression "dVar2 = (double)DAT_00306a38" identifier = (cast_expression "(double)DAT_00306a38" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "dVar4 = (double)DAT_002df8a8;" (assignment_expression "dVar4 = (double)DAT_002df8a8" identifier = (cast_expression "(double)DAT_002df8a8" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));" (call_expression "WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8))" identifier (argument_list "(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8))" ( identifier , (cast_expression "(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8)" ( (type_descriptor "char" primitive_type) ) (cast_expression "(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8)" identifier (argument_list "(((float)local_94 * DAT_00306a38) / DAT_002df8a8)" ( (binary_expression "((float)local_94 * DAT_00306a38) / DAT_002df8a8" (parenthesized_expression "((float)local_94 * DAT_00306a38)" ( (binary_expression "(float)local_94 * DAT_00306a38" (cast_expression "(float)local_94" ( (type_descriptor "float" primitive_type) ) identifier) * identifier) )) / identifier) ))))) ))) ;) (expression_statement "WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));" (call_expression "WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4))" identifier (argument_list "(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4))" ( identifier , (cast_expression "(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4)" ( (type_descriptor "char" primitive_type) ) (cast_expression "(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND((local_84 * (double)DAT_0030d3a4) / dVar4)" identifier (argument_list "((local_84 * (double)DAT_0030d3a4) / dVar4)" ( (binary_expression "(local_84 * (double)DAT_0030d3a4) / dVar4" (parenthesized_expression "(local_84 * (double)DAT_0030d3a4)" ( (binary_expression "local_84 * (double)DAT_0030d3a4" identifier * (cast_expression "(double)DAT_0030d3a4" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier) ))))) ))) ;) (expression_statement "WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));" (call_expression "WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4))" identifier (argument_list "(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4))" ( identifier , (cast_expression "(char)(short)ROUND((dVar2 * local_8c) / dVar4)" ( (type_descriptor "char" primitive_type) ) (cast_expression "(short)ROUND((dVar2 * local_8c) / dVar4)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND((dVar2 * local_8c) / dVar4)" identifier (argument_list "((dVar2 * local_8c) / dVar4)" ( (binary_expression "(dVar2 * local_8c) / dVar4" (parenthesized_expression "(dVar2 * local_8c)" ( (binary_expression "dVar2 * local_8c" identifier * identifier) )) / identifier) ))))) ))) ;) })) (if_statement "if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }" if (parenthesized_expression "((short)local_48 < 0)" ( (binary_expression "(short)local_48 < 0" (cast_expression "(short)local_48" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) < number_literal) )) (compound_statement "{\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }" { (expression_statement "sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);" (assignment_expression "sVar12 = SeekBlob(param_2,lVar32 + lVar31,0)" identifier = (call_expression "SeekBlob(param_2,lVar32 + lVar31,0)" identifier (argument_list "(param_2,lVar32 + lVar31,0)" ( identifier , (binary_expression "lVar32 + lVar31" identifier + identifier) , number_literal )))) ;) (expression_statement "sVar13 = GetBlobSize(param_2);" (assignment_expression "sVar13 = GetBlobSize(param_2)" identifier = (call_expression "GetBlobSize(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "local_74._0_2_ = (short)lVar31;" (assignment_expression "local_74._0_2_ = (short)lVar31" (field_expression "local_74._0_2_" identifier . field_identifier) = (cast_expression "(short)lVar31" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);" (call_expression "WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12)" identifier (argument_list "(param_2,(sVar13 - (short)local_74) - sVar12)" ( identifier , (binary_expression "(sVar13 - (short)local_74) - sVar12" (parenthesized_expression "(sVar13 - (short)local_74)" ( (binary_expression "sVar13 - (short)local_74" identifier - (cast_expression "(short)local_74" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) )) - identifier) ))) ;) })) (expression_statement "RelinquishMagickMemory(pcVar18);" (call_expression "RelinquishMagickMemory(pcVar18)" identifier (argument_list "(pcVar18)" ( identifier ))) ;) (if_statement "if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }" if (parenthesized_expression "(local_7c != (char *)0x0)" ( (binary_expression "local_7c != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        RelinquishMagickMemory(local_7c);\n      }" { (expression_statement "RelinquishMagickMemory(local_7c);" (call_expression "RelinquishMagickMemory(local_7c)" identifier (argument_list "(local_7c)" ( identifier ))) ;) })) (expression_statement "iVar20 = GetNextImageInList(param_2);" (assignment_expression "iVar20 = GetNextImageInList(param_2)" identifier = (call_expression "GetNextImageInList(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar20 == 0) goto LAB_00261e48;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00261e48;" goto statement_identifier ;)) (expression_statement "uVar21 = GetBlobSize(param_2);" (assignment_expression "uVar21 = GetBlobSize(param_2)" identifier = (call_expression "GetBlobSize(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uVar21 = uVar21 & 3;" (assignment_expression "uVar21 = uVar21 & 3" identifier = (binary_expression "uVar21 & 3" identifier & number_literal)) ;) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (if_statement "if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }" if (parenthesized_expression "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }" { (do_statement "do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);" do (compound_statement "{\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        }" { (expression_statement "WriteBlobByte(param_2,0);" (call_expression "WriteBlobByte(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "bVar30 = uVar21 != 0;" (assignment_expression "bVar30 = uVar21 != 0" identifier = (binary_expression "uVar21 != 0" identifier != number_literal)) ;) (expression_statement "uVar21 = uVar21 - 1;" (assignment_expression "uVar21 = uVar21 - 1" identifier = (binary_expression "uVar21 - 1" identifier - number_literal)) ;) (expression_statement "iVar20 = iVar20 + -1 + (uint)bVar30;" (assignment_expression "iVar20 = iVar20 + -1 + (uint)bVar30" identifier = (binary_expression "iVar20 + -1 + (uint)bVar30" (binary_expression "iVar20 + -1" identifier + number_literal) + (cast_expression "(uint)bVar30" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "(iVar20 != 0 || uVar21 != 0)" ( (binary_expression "iVar20 != 0 || uVar21 != 0" (binary_expression "iVar20 != 0" identifier != number_literal) || (binary_expression "uVar21 != 0" identifier != number_literal)) )) ;) })) (expression_statement "SeekBlob(param_2,lVar31 + 10,0);" (call_expression "SeekBlob(param_2,lVar31 + 10,0)" identifier (argument_list "(param_2,lVar31 + 10,0)" ( identifier , (binary_expression "lVar31 + 10" identifier + number_literal) , number_literal ))) ;) (expression_statement "iVar20 = GetBlobSize(param_2);" (assignment_expression "iVar20 = GetBlobSize(param_2)" identifier = (call_expression "GetBlobSize(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);" (call_expression "WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff)" identifier (argument_list "(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff)" ( identifier , (binary_expression "(uint)(iVar20 - iVar14) >> 2 & 0xffff" (binary_expression "(uint)(iVar20 - iVar14) >> 2" (call_expression "(uint)(iVar20 - iVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar20 - iVar14)" ( (binary_expression "iVar20 - iVar14" identifier - identifier) ))) >> number_literal) & number_literal) ))) ;) (expression_statement "lVar31 = GetBlobSize(param_2);" (assignment_expression "lVar31 = GetBlobSize(param_2)" identifier = (call_expression "GetBlobSize(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "SeekBlob(param_2,lVar31);" (call_expression "SeekBlob(param_2,lVar31)" identifier (argument_list "(param_2,lVar31)" ( identifier , identifier ))) ;) (expression_statement "param_2 = (int *)SyncNextImageInList(param_2);" (assignment_expression "param_2 = (int *)SyncNextImageInList(param_2)" identifier = (cast_expression "(int *)SyncNextImageInList(param_2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "SyncNextImageInList(param_2)" identifier (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "bVar30 = 0xfffffffe < local_54;" (assignment_expression "bVar30 = 0xfffffffe < local_54" identifier = (binary_expression "0xfffffffe < local_54" number_literal < identifier)) ;) (expression_statement "iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);" (assignment_expression "iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0)" identifier = (call_expression "SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0)" identifier (argument_list "(param_2,"Save/Images",local_54,local_50,uVar16,0)" ( identifier , (string_literal ""Save/Images"" " string_content ") , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;" if (parenthesized_expression "((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))" ( (binary_expression "(iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0)" (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0)" ( (comma_expression "local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0" (assignment_expression "local_54 = local_54 + 1" identifier = (binary_expression "local_54 + 1" identifier + number_literal)) , (comma_expression "local_50 = local_50 + (uint)bVar30, param_1[3] == 0" (assignment_expression "local_50 = local_50 + (uint)bVar30" identifier = (binary_expression "local_50 + (uint)bVar30" identifier + (cast_expression "(uint)bVar30" ( (type_descriptor "uint" type_identifier) ) identifier))) , (binary_expression "param_1[3] == 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) == number_literal))) ))) )) (goto_statement "goto LAB_00261e48;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (labeled_statement "LAB_00260565:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002decd0();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002decd0();\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                    /* WARNING: Subroutine does not return */\n    FUN_002decd0();\n  }" { comment (expression_statement "FUN_002decd0();" (call_expression "FUN_002decd0()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar14;" return identifier ;) (labeled_statement "LAB_00261ad3:\n  dVar2 = (double)iVar22;" statement_identifier : (expression_statement "dVar2 = (double)iVar22;" (assignment_expression "dVar2 = (double)iVar22" identifier = (cast_expression "(double)iVar22" ( (type_descriptor "double" primitive_type) ) identifier)) ;)) (labeled_statement "LAB_00261adb:\n  if (iVar8 != 0) {\n    *(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;\n  }" statement_identifier : (if_statement "if (iVar8 != 0) {\n    *(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;\n  }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n    *(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;\n  }" { (expression_statement "*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;" (assignment_expression "*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2" (pointer_expression "*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)" * (cast_expression "(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + *(int *)(iVar6 + 0x44) * 8)" ( (binary_expression "iVar25 + *(int *)(iVar6 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar6 + 0x44) * 8" (pointer_expression "*(int *)(iVar6 + 0x44)" * (cast_expression "(int *)(iVar6 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x44)" ( (binary_expression "iVar6 + 0x44" identifier + number_literal) )))) * number_literal)) )))) = identifier) ;) }))) (expression_statement "local_d4 = local_d4 + 1;" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) ;) (expression_statement "iVar25 = iVar25 + iVar7 * 8;" (assignment_expression "iVar25 = iVar25 + iVar7 * 8" identifier = (binary_expression "iVar25 + iVar7 * 8" identifier + (binary_expression "iVar7 * 8" identifier * number_literal))) ;) (if_statement "if (local_d4 == iVar19) goto LAB_00261b09;" if (parenthesized_expression "(local_d4 == iVar19)" ( (binary_expression "local_d4 == iVar19" identifier == identifier) )) (goto_statement "goto LAB_00261b09;" goto statement_identifier ;)) (goto_statement "goto LAB_002618c8;" goto statement_identifier ;) (labeled_statement "LAB_00261e48:\n  DestroyQuantizeInfo(piVar15);" statement_identifier : (expression_statement "DestroyQuantizeInfo(piVar15);" (call_expression "DestroyQuantizeInfo(piVar15)" identifier (argument_list "(piVar15)" ( identifier ))) ;)) (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00260565;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\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 WritePALMImage(ImageInfo *image_info,Image *image,ExceptionInfo *exception)\n\n{\n  char *pcVar1;\n  double dVar2;\n  double dVar3;\n  int iVar4;\n  PixelChannelMap *pPVar5;\n  PixelInfo *pPVar6;\n  PixelTrait PVar7;\n  _Image *p_Var8;\n  Image *pIVar9;\n  byte value;\n  uchar uVar10;\n  MagickBooleanType MVar11;\n  QuantizeInfo *quantize_info;\n  size_t sVar12;\n  size_t sVar13;\n  char *__s;\n  Quantum *pQVar14;\n  uint uVar15;\n  CompressionType CVar16;\n  Image *pIVar17;\n  uint uVar18;\n  uint uVar19;\n  char *pcVar20;\n  int iVar21;\n  uchar (*pauVar22) [3];\n  PixelInfo *pPVar23;\n  int iVar24;\n  size_t sVar25;\n  char cVar26;\n  uint uVar27;\n  int iVar28;\n  size_t sVar29;\n  int in_GS_OFFSET;\n  bool bVar30;\n  MagickSizeType MVar31;\n  MagickOffsetType MVar32;\n  uint local_d4;\n  ulonglong local_cc;\n  PixelChannelMap *local_b8;\n  char *local_b0;\n  uint local_ac;\n  uint local_a0;\n  char *local_9c;\n  double local_94;\n  double local_8c;\n  double local_84;\n  char *local_7c;\n  char *local_78;\n  MagickSizeType local_74;\n  ulonglong local_64;\n  uint local_54;\n  int local_50;\n  ushort local_48;\n  uchar local_46;\n  byte local_45;\n  char tmpbuf [8];\n  \n  iVar4 = *(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/palm.c",0x2ed,"WritePALMImage");\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage");\n  }\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"coders/palm.c","WritePALMImage",0x2f2,"%s",(char)image + '\x18');\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage");\n  }\n  MVar11 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);\n  if (MVar11 != MagickFalse) {\n    quantize_info = AcquireQuantizeInfo(image_info);\n    sVar12 = GetImageListLength(image);\n    local_8c = 0.0;\n    local_48 = 0;\n    local_84 = 0.0;\n    local_46 = '\0';\n    local_94 = 0.0;\n    local_54 = 0;\n    local_50 = 0;\n    local_74 = 0;\n    do {\n      TransformImageColorspace(image,sRGBColorspace,exception);\n      sVar13 = GetNumberColors(image,(FILE *)0x0,exception);\n      local_a0 = 1;\n      if (sVar13 < 3) {\n        TransformImageColorspace(image,image->colorspace,exception);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(image,GRAYColorspace,exception);\n        SetImageType(image,PaletteType,exception);\n        SortColormapByIntensity(image,exception);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < sVar13);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            TransformImageColorspace(image,image->colorspace,exception);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((image->storage_class == PseudoClass) &&\n         ((image->colors < 0x101 ||\n          (SetImageStorageClass(image,DirectClass,exception), image->storage_class == PseudoClass)))\n         ) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(image,(ushort)image->columns);\n      WriteBlobMSBShort(image,(ushort)image->rows);\n      sVar13 = (int)((ulonglong)((int)(0x10 / (ulonglong)local_a0) + -1 + image->columns) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(image,(ushort)sVar13);\n      if ((image_info->compression == RLECompression) || (image_info->compression == FaxCompression)\n         ) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(image,local_48);\n      WriteBlobByte(image,(byte)local_a0);\n      if (1 < local_a0) {\n        local_46 = '\x01';\n      }\n      if ((image_info->compression == RLECompression) || (image_info->compression == FaxCompression)\n         ) {\n        local_46 = '\x02';\n      }\n      WriteBlobByte(image,local_46);\n      WriteBlobMSBShort(image,0);\n      WriteBlobByte(image,'\0');\n      if (image_info->compression == RLECompression) {\n        WriteBlobByte(image,'\x01');\n      }\n      else if (image_info->compression == FaxCompression) {\n        WriteBlobByte(image,'\0');\n      }\n      else {\n        WriteBlobByte(image,0xff);\n      }\n      WriteBlobMSBShort(image,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(image,'\x05');\n        WriteBlobByte(image,'\x06');\n        WriteBlobByte(image,'\x05');\n        WriteBlobByte(image,'\0');\n        WriteBlobMSBLong(image,0);\n        local_64 = 0x18;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 == 8) {\n          if ((local_48 & 0x4000) == 0) {\n            pIVar17 = ConstituteImage(0x100,1,"RGB",CharPixel,PalmPalette,exception);\n            TransformImageColorspace(pIVar17,pIVar17->colorspace,exception);\n            RemapImage(quantize_info,image,pIVar17,exception);\n            if (0 < (int)image->rows) {\n              sVar29 = image->columns;\n              local_78 = (char *)0x0;\n              do {\n                pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception);\n                if (pQVar14 == (Quantum *)0x0) break;\n                sVar29 = image->columns;\n                if (0 < (int)sVar29) {\n                  pPVar6 = image->colormap;\n                  local_d4 = 0;\n                  pPVar5 = image->channel_map;\n                  sVar25 = image->number_channels;\n                  PVar7 = pPVar5[5].traits;\nLAB_002618c8:\n                  pPVar23 = pPVar6;\n                  if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }\n                  dVar2 = pPVar23->red;\n                  if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  dVar2 = -1.0;\n                  goto LAB_00261adb;\n                }\nLAB_00261b09:\n                local_78 = (char *)((int)local_78 + 1);\n              } while ((int)local_78 < (int)image->rows);\n            }\n            DestroyImage(pIVar17);\n            local_64 = 0x10;\n          }\n          else {\n            MVar11 = IdentifyPaletteImage(image,exception);\n            quantize_info->dither_method = (MVar11 == MagickFalse) + NoDitherMethod;\n            quantize_info->number_colors = image->colors;\n            QuantizeImage(quantize_info,image,exception);\n            WriteBlobMSBShort(image,(ushort)image->colors);\n            if (image->colors == 0) {\n              local_64 = 0x12;\n            }\n            else {\n              iVar24 = 0;\n              local_d4 = 0;\n              do {\n                WriteBlobByte(image,(uchar)local_d4);\n                dVar2 = *(double *)((int)&image->colormap->red + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->green + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                iVar24 = iVar24 + 0x50;\n                WriteBlobByte(image,uVar10);\n                local_d4 = local_d4 + 1;\n              } while (local_d4 < image->colors);\n              local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12);\n            }\n          }\n        }\n      }\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(image,0);\n      }\n      local_7c = (char *)0x0;\n      pIVar17 = image;\n      if ((image_info->compression == FaxCompression) &&\n         (local_7c = (char *)AcquireQuantumMemory(sVar13 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(quantize_info);\n        ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x376,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n        p_Var8 = (_Image *)image_info->adjoin;\n        while (pIVar9 = image, p_Var8 != (_Image *)0x0) {\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }\nLAB_0026128c:\n        CloseBlob(pIVar17);\n        MVar11 = MagickFalse;\n        break;\n      }\n      __s = (char *)AcquireQuantumMemory(sVar13 + 0x100,1);\n      if (__s == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(quantize_info);\n        ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x380,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n        p_Var8 = (_Image *)image_info->adjoin;\n        while (pIVar9 = image, p_Var8 != (_Image *)0x0) {\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < (int)image->rows) {\n        iVar24 = 0;\n        do {\n          memset(__s,0,sVar13);\n          pQVar14 = GetVirtualPixels(image,0,iVar24,image->columns,1,exception);\n          if (pQVar14 == (Quantum *)0x0) break;\n          local_ac = image->columns;\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (PixelChannelMap *)0x0;\n            do {\n              pPVar5 = image->channel_map;\n              uVar18 = (((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f) / 0xffff;\n              if ((pPVar5[4].traits != UndefinedPixelTrait) && (pQVar14[pPVar5[4].offset] == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = pQVar14[pPVar5->offset];\n                local_8c = pQVar14[pPVar5[2].offset];\n                local_84 = pQVar14[pPVar5[1].offset];\n              }\n              __s[(int)local_b8 * 2] = (char)(uVar18 >> 8);\n              __s[(int)local_b8 * 2 + 1] = (char)uVar18;\n              local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n              pQVar14 = pQVar14 + image->number_channels;\n            } while ((int)local_b8 < (int)image->columns);\n            CVar16 = image_info->compression;\n            if (CVar16 != RLECompression) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)sVar13) {\n              iVar21 = 0;\n              do {\n                uVar10 = __s[iVar21];\n                iVar28 = iVar21 + 1;\n                if (uVar10 == __s[iVar21 + 1]) {\n                  if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }\n                  uVar18 = 1;\n                  do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);\n                }\n                else {\n                  uVar18 = 1;\n                }\n                WriteBlobByte(image,(uchar)uVar18);\n                WriteBlobByte(image,uVar10);\n                iVar21 = iVar28;\n              } while (iVar28 < (int)sVar13);\n            }\n          }\n          else {\n            uVar18 = (uint)(byte)(8 - local_45);\n            local_b8 = (PixelChannelMap *)__s;\n            if ((int)local_ac < 1) {\n              cVar26 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              do {\n                while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                local_ac = image->columns;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n            }\n            else {\n              local_b8 = image->channel_map;\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              local_9c = __s;\n              do {\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n              local_b8 = (PixelChannelMap *)local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *(char *)local_b8 = cVar26;\n            }\nLAB_0026097b:\n            CVar16 = image_info->compression;\n            if (CVar16 == RLECompression) goto LAB_00260d43;\nLAB_0026098a:\n            if (CVar16 == FaxCompression) {\n              if (0 < (int)sVar13) {\n                pcVar20 = __s;\n                sVar29 = sVar13;\n                pcVar1 = local_7c;\n                do {\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);\n              }\n              memcpy(local_7c,__s,sVar13);\n            }\n            else {\n              WriteBlob(image,sVar13,__s);\n            }\n          }\n          iVar24 = iVar24 + 1;\n        } while (iVar24 < (int)image->rows);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(image,local_74 + 6,0);\n        WriteBlobMSBShort(image,local_48);\n        local_64 = SeekBlob(image,local_74 + 0xc,0);\n        WriteBlobByte(image,'\0');\n      }\n      if (local_a0 == 0x10) {\n        local_64 = SeekBlob(image,local_74 + 0x14,0);\n        WriteBlobByte(image,'\0');\n        dVar2 = (double)DAT_00306a38;\n        dVar3 = (double)DAT_002df8a8;\n        WriteBlobByte(image,(uchar)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(image,(uchar)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar3));\n        WriteBlobByte(image,(uchar)(short)ROUND((dVar2 * local_8c) / dVar3));\n      }\n      if ((short)local_48 < 0) {\n        MVar32 = SeekBlob(image,local_74 + local_64,0);\n        MVar31 = GetBlobSize(image);\n        WriteBlobMSBShort(image,((short)MVar31 - (short)local_74) - (short)MVar32);\n      }\n      RelinquishMagickMemory(__s);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      pIVar17 = GetNextImageInList(image);\n      if (pIVar17 == (Image *)0x0) goto LAB_00261e48;\n      MVar31 = GetBlobSize(image);\n      uVar18 = (uint)MVar31 & 3;\n      iVar24 = 0;\n      if ((MVar31 & 3) != 0) {\n        do {\n          WriteBlobByte(image,'\0');\n          bVar30 = uVar18 != 0;\n          uVar18 = uVar18 - 1;\n          iVar24 = iVar24 + -1 + (uint)bVar30;\n        } while (iVar24 != 0 || uVar18 != 0);\n      }\n      SeekBlob(image,local_74 + 10,0);\n      MVar31 = GetBlobSize(image);\n      WriteBlobMSBShort(image,(ushort)((uint)(MVar31 - local_74) >> 2));\n      local_74 = GetBlobSize(image);\n      SeekBlob(image,local_74,0);\n      image = SyncNextImageInList(image);\n      bVar30 = 0xfffffffe < local_54;\n      MVar11 = SetImageProgress(image,"Save/Images",CONCAT44(local_50,local_54),(ulonglong)sVar12);\n      if ((MVar11 == MagickFalse) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30,\n         image_info->adjoin == MagickFalse)) goto LAB_00261e48;\n    } while( true );\n  }\nLAB_00260565:\n  if (iVar4 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return MVar11;\nLAB_00261ad3:\n  dVar2 = (double)iVar24;\nLAB_00261adb:\n  if (PVar7 != UndefinedPixelTrait) {\n    pQVar14[pPVar5[5].offset] = dVar2;\n  }\n  local_d4 = local_d4 + 1;\n  pQVar14 = pQVar14 + sVar25;\n  if (local_d4 == sVar29) goto LAB_00261b09;\n  goto LAB_002618c8;\nLAB_00261e48:\n  DestroyQuantizeInfo(quantize_info);\n  CloseBlob(image);\n  MVar11 = MagickTrue;\n  goto LAB_00260565;\n}\n\n" comment comment comment comment comment comment comment (function_definition "MagickBooleanType WritePALMImage(ImageInfo *image_info,Image *image,ExceptionInfo *exception)\n\n{\n  char *pcVar1;\n  double dVar2;\n  double dVar3;\n  int iVar4;\n  PixelChannelMap *pPVar5;\n  PixelInfo *pPVar6;\n  PixelTrait PVar7;\n  _Image *p_Var8;\n  Image *pIVar9;\n  byte value;\n  uchar uVar10;\n  MagickBooleanType MVar11;\n  QuantizeInfo *quantize_info;\n  size_t sVar12;\n  size_t sVar13;\n  char *__s;\n  Quantum *pQVar14;\n  uint uVar15;\n  CompressionType CVar16;\n  Image *pIVar17;\n  uint uVar18;\n  uint uVar19;\n  char *pcVar20;\n  int iVar21;\n  uchar (*pauVar22) [3];\n  PixelInfo *pPVar23;\n  int iVar24;\n  size_t sVar25;\n  char cVar26;\n  uint uVar27;\n  int iVar28;\n  size_t sVar29;\n  int in_GS_OFFSET;\n  bool bVar30;\n  MagickSizeType MVar31;\n  MagickOffsetType MVar32;\n  uint local_d4;\n  ulonglong local_cc;\n  PixelChannelMap *local_b8;\n  char *local_b0;\n  uint local_ac;\n  uint local_a0;\n  char *local_9c;\n  double local_94;\n  double local_8c;\n  double local_84;\n  char *local_7c;\n  char *local_78;\n  MagickSizeType local_74;\n  ulonglong local_64;\n  uint local_54;\n  int local_50;\n  ushort local_48;\n  uchar local_46;\n  byte local_45;\n  char tmpbuf [8];\n  \n  iVar4 = *(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/palm.c",0x2ed,"WritePALMImage");\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage");\n  }\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"coders/palm.c","WritePALMImage",0x2f2,"%s",(char)image + '\x18');\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage");\n  }\n  MVar11 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);\n  if (MVar11 != MagickFalse) {\n    quantize_info = AcquireQuantizeInfo(image_info);\n    sVar12 = GetImageListLength(image);\n    local_8c = 0.0;\n    local_48 = 0;\n    local_84 = 0.0;\n    local_46 = '\0';\n    local_94 = 0.0;\n    local_54 = 0;\n    local_50 = 0;\n    local_74 = 0;\n    do {\n      TransformImageColorspace(image,sRGBColorspace,exception);\n      sVar13 = GetNumberColors(image,(FILE *)0x0,exception);\n      local_a0 = 1;\n      if (sVar13 < 3) {\n        TransformImageColorspace(image,image->colorspace,exception);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(image,GRAYColorspace,exception);\n        SetImageType(image,PaletteType,exception);\n        SortColormapByIntensity(image,exception);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < sVar13);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            TransformImageColorspace(image,image->colorspace,exception);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((image->storage_class == PseudoClass) &&\n         ((image->colors < 0x101 ||\n          (SetImageStorageClass(image,DirectClass,exception), image->storage_class == PseudoClass)))\n         ) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(image,(ushort)image->columns);\n      WriteBlobMSBShort(image,(ushort)image->rows);\n      sVar13 = (int)((ulonglong)((int)(0x10 / (ulonglong)local_a0) + -1 + image->columns) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(image,(ushort)sVar13);\n      if ((image_info->compression == RLECompression) || (image_info->compression == FaxCompression)\n         ) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(image,local_48);\n      WriteBlobByte(image,(byte)local_a0);\n      if (1 < local_a0) {\n        local_46 = '\x01';\n      }\n      if ((image_info->compression == RLECompression) || (image_info->compression == FaxCompression)\n         ) {\n        local_46 = '\x02';\n      }\n      WriteBlobByte(image,local_46);\n      WriteBlobMSBShort(image,0);\n      WriteBlobByte(image,'\0');\n      if (image_info->compression == RLECompression) {\n        WriteBlobByte(image,'\x01');\n      }\n      else if (image_info->compression == FaxCompression) {\n        WriteBlobByte(image,'\0');\n      }\n      else {\n        WriteBlobByte(image,0xff);\n      }\n      WriteBlobMSBShort(image,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(image,'\x05');\n        WriteBlobByte(image,'\x06');\n        WriteBlobByte(image,'\x05');\n        WriteBlobByte(image,'\0');\n        WriteBlobMSBLong(image,0);\n        local_64 = 0x18;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 == 8) {\n          if ((local_48 & 0x4000) == 0) {\n            pIVar17 = ConstituteImage(0x100,1,"RGB",CharPixel,PalmPalette,exception);\n            TransformImageColorspace(pIVar17,pIVar17->colorspace,exception);\n            RemapImage(quantize_info,image,pIVar17,exception);\n            if (0 < (int)image->rows) {\n              sVar29 = image->columns;\n              local_78 = (char *)0x0;\n              do {\n                pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception);\n                if (pQVar14 == (Quantum *)0x0) break;\n                sVar29 = image->columns;\n                if (0 < (int)sVar29) {\n                  pPVar6 = image->colormap;\n                  local_d4 = 0;\n                  pPVar5 = image->channel_map;\n                  sVar25 = image->number_channels;\n                  PVar7 = pPVar5[5].traits;\nLAB_002618c8:\n                  pPVar23 = pPVar6;\n                  if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }\n                  dVar2 = pPVar23->red;\n                  if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  dVar2 = -1.0;\n                  goto LAB_00261adb;\n                }\nLAB_00261b09:\n                local_78 = (char *)((int)local_78 + 1);\n              } while ((int)local_78 < (int)image->rows);\n            }\n            DestroyImage(pIVar17);\n            local_64 = 0x10;\n          }\n          else {\n            MVar11 = IdentifyPaletteImage(image,exception);\n            quantize_info->dither_method = (MVar11 == MagickFalse) + NoDitherMethod;\n            quantize_info->number_colors = image->colors;\n            QuantizeImage(quantize_info,image,exception);\n            WriteBlobMSBShort(image,(ushort)image->colors);\n            if (image->colors == 0) {\n              local_64 = 0x12;\n            }\n            else {\n              iVar24 = 0;\n              local_d4 = 0;\n              do {\n                WriteBlobByte(image,(uchar)local_d4);\n                dVar2 = *(double *)((int)&image->colormap->red + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->green + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                iVar24 = iVar24 + 0x50;\n                WriteBlobByte(image,uVar10);\n                local_d4 = local_d4 + 1;\n              } while (local_d4 < image->colors);\n              local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12);\n            }\n          }\n        }\n      }\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(image,0);\n      }\n      local_7c = (char *)0x0;\n      pIVar17 = image;\n      if ((image_info->compression == FaxCompression) &&\n         (local_7c = (char *)AcquireQuantumMemory(sVar13 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(quantize_info);\n        ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x376,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n        p_Var8 = (_Image *)image_info->adjoin;\n        while (pIVar9 = image, p_Var8 != (_Image *)0x0) {\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }\nLAB_0026128c:\n        CloseBlob(pIVar17);\n        MVar11 = MagickFalse;\n        break;\n      }\n      __s = (char *)AcquireQuantumMemory(sVar13 + 0x100,1);\n      if (__s == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(quantize_info);\n        ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x380,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n        p_Var8 = (_Image *)image_info->adjoin;\n        while (pIVar9 = image, p_Var8 != (_Image *)0x0) {\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < (int)image->rows) {\n        iVar24 = 0;\n        do {\n          memset(__s,0,sVar13);\n          pQVar14 = GetVirtualPixels(image,0,iVar24,image->columns,1,exception);\n          if (pQVar14 == (Quantum *)0x0) break;\n          local_ac = image->columns;\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (PixelChannelMap *)0x0;\n            do {\n              pPVar5 = image->channel_map;\n              uVar18 = (((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f) / 0xffff;\n              if ((pPVar5[4].traits != UndefinedPixelTrait) && (pQVar14[pPVar5[4].offset] == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = pQVar14[pPVar5->offset];\n                local_8c = pQVar14[pPVar5[2].offset];\n                local_84 = pQVar14[pPVar5[1].offset];\n              }\n              __s[(int)local_b8 * 2] = (char)(uVar18 >> 8);\n              __s[(int)local_b8 * 2 + 1] = (char)uVar18;\n              local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n              pQVar14 = pQVar14 + image->number_channels;\n            } while ((int)local_b8 < (int)image->columns);\n            CVar16 = image_info->compression;\n            if (CVar16 != RLECompression) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)sVar13) {\n              iVar21 = 0;\n              do {\n                uVar10 = __s[iVar21];\n                iVar28 = iVar21 + 1;\n                if (uVar10 == __s[iVar21 + 1]) {\n                  if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }\n                  uVar18 = 1;\n                  do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);\n                }\n                else {\n                  uVar18 = 1;\n                }\n                WriteBlobByte(image,(uchar)uVar18);\n                WriteBlobByte(image,uVar10);\n                iVar21 = iVar28;\n              } while (iVar28 < (int)sVar13);\n            }\n          }\n          else {\n            uVar18 = (uint)(byte)(8 - local_45);\n            local_b8 = (PixelChannelMap *)__s;\n            if ((int)local_ac < 1) {\n              cVar26 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              do {\n                while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                local_ac = image->columns;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n            }\n            else {\n              local_b8 = image->channel_map;\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              local_9c = __s;\n              do {\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n              local_b8 = (PixelChannelMap *)local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *(char *)local_b8 = cVar26;\n            }\nLAB_0026097b:\n            CVar16 = image_info->compression;\n            if (CVar16 == RLECompression) goto LAB_00260d43;\nLAB_0026098a:\n            if (CVar16 == FaxCompression) {\n              if (0 < (int)sVar13) {\n                pcVar20 = __s;\n                sVar29 = sVar13;\n                pcVar1 = local_7c;\n                do {\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);\n              }\n              memcpy(local_7c,__s,sVar13);\n            }\n            else {\n              WriteBlob(image,sVar13,__s);\n            }\n          }\n          iVar24 = iVar24 + 1;\n        } while (iVar24 < (int)image->rows);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(image,local_74 + 6,0);\n        WriteBlobMSBShort(image,local_48);\n        local_64 = SeekBlob(image,local_74 + 0xc,0);\n        WriteBlobByte(image,'\0');\n      }\n      if (local_a0 == 0x10) {\n        local_64 = SeekBlob(image,local_74 + 0x14,0);\n        WriteBlobByte(image,'\0');\n        dVar2 = (double)DAT_00306a38;\n        dVar3 = (double)DAT_002df8a8;\n        WriteBlobByte(image,(uchar)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(image,(uchar)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar3));\n        WriteBlobByte(image,(uchar)(short)ROUND((dVar2 * local_8c) / dVar3));\n      }\n      if ((short)local_48 < 0) {\n        MVar32 = SeekBlob(image,local_74 + local_64,0);\n        MVar31 = GetBlobSize(image);\n        WriteBlobMSBShort(image,((short)MVar31 - (short)local_74) - (short)MVar32);\n      }\n      RelinquishMagickMemory(__s);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      pIVar17 = GetNextImageInList(image);\n      if (pIVar17 == (Image *)0x0) goto LAB_00261e48;\n      MVar31 = GetBlobSize(image);\n      uVar18 = (uint)MVar31 & 3;\n      iVar24 = 0;\n      if ((MVar31 & 3) != 0) {\n        do {\n          WriteBlobByte(image,'\0');\n          bVar30 = uVar18 != 0;\n          uVar18 = uVar18 - 1;\n          iVar24 = iVar24 + -1 + (uint)bVar30;\n        } while (iVar24 != 0 || uVar18 != 0);\n      }\n      SeekBlob(image,local_74 + 10,0);\n      MVar31 = GetBlobSize(image);\n      WriteBlobMSBShort(image,(ushort)((uint)(MVar31 - local_74) >> 2));\n      local_74 = GetBlobSize(image);\n      SeekBlob(image,local_74,0);\n      image = SyncNextImageInList(image);\n      bVar30 = 0xfffffffe < local_54;\n      MVar11 = SetImageProgress(image,"Save/Images",CONCAT44(local_50,local_54),(ulonglong)sVar12);\n      if ((MVar11 == MagickFalse) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30,\n         image_info->adjoin == MagickFalse)) goto LAB_00261e48;\n    } while( true );\n  }\nLAB_00260565:\n  if (iVar4 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return MVar11;\nLAB_00261ad3:\n  dVar2 = (double)iVar24;\nLAB_00261adb:\n  if (PVar7 != UndefinedPixelTrait) {\n    pQVar14[pPVar5[5].offset] = dVar2;\n  }\n  local_d4 = local_d4 + 1;\n  pQVar14 = pQVar14 + sVar25;\n  if (local_d4 == sVar29) goto LAB_00261b09;\n  goto LAB_002618c8;\nLAB_00261e48:\n  DestroyQuantizeInfo(quantize_info);\n  CloseBlob(image);\n  MVar11 = MagickTrue;\n  goto LAB_00260565;\n}" type_identifier (function_declarator "WritePALMImage(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  char *pcVar1;\n  double dVar2;\n  double dVar3;\n  int iVar4;\n  PixelChannelMap *pPVar5;\n  PixelInfo *pPVar6;\n  PixelTrait PVar7;\n  _Image *p_Var8;\n  Image *pIVar9;\n  byte value;\n  uchar uVar10;\n  MagickBooleanType MVar11;\n  QuantizeInfo *quantize_info;\n  size_t sVar12;\n  size_t sVar13;\n  char *__s;\n  Quantum *pQVar14;\n  uint uVar15;\n  CompressionType CVar16;\n  Image *pIVar17;\n  uint uVar18;\n  uint uVar19;\n  char *pcVar20;\n  int iVar21;\n  uchar (*pauVar22) [3];\n  PixelInfo *pPVar23;\n  int iVar24;\n  size_t sVar25;\n  char cVar26;\n  uint uVar27;\n  int iVar28;\n  size_t sVar29;\n  int in_GS_OFFSET;\n  bool bVar30;\n  MagickSizeType MVar31;\n  MagickOffsetType MVar32;\n  uint local_d4;\n  ulonglong local_cc;\n  PixelChannelMap *local_b8;\n  char *local_b0;\n  uint local_ac;\n  uint local_a0;\n  char *local_9c;\n  double local_94;\n  double local_8c;\n  double local_84;\n  char *local_7c;\n  char *local_78;\n  MagickSizeType local_74;\n  ulonglong local_64;\n  uint local_54;\n  int local_50;\n  ushort local_48;\n  uchar local_46;\n  byte local_45;\n  char tmpbuf [8];\n  \n  iVar4 = *(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/palm.c",0x2ed,"WritePALMImage");\n  }\n  if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage");\n  }\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"coders/palm.c","WritePALMImage",0x2f2,"%s",(char)image + '\x18');\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");\n  }\n  if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage");\n  }\n  MVar11 = OpenBlob(image_info,image,WriteBinaryBlobMode,exception);\n  if (MVar11 != MagickFalse) {\n    quantize_info = AcquireQuantizeInfo(image_info);\n    sVar12 = GetImageListLength(image);\n    local_8c = 0.0;\n    local_48 = 0;\n    local_84 = 0.0;\n    local_46 = '\0';\n    local_94 = 0.0;\n    local_54 = 0;\n    local_50 = 0;\n    local_74 = 0;\n    do {\n      TransformImageColorspace(image,sRGBColorspace,exception);\n      sVar13 = GetNumberColors(image,(FILE *)0x0,exception);\n      local_a0 = 1;\n      if (sVar13 < 3) {\n        TransformImageColorspace(image,image->colorspace,exception);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(image,GRAYColorspace,exception);\n        SetImageType(image,PaletteType,exception);\n        SortColormapByIntensity(image,exception);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < sVar13);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            TransformImageColorspace(image,image->colorspace,exception);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((image->storage_class == PseudoClass) &&\n         ((image->colors < 0x101 ||\n          (SetImageStorageClass(image,DirectClass,exception), image->storage_class == PseudoClass)))\n         ) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(image,(ushort)image->columns);\n      WriteBlobMSBShort(image,(ushort)image->rows);\n      sVar13 = (int)((ulonglong)((int)(0x10 / (ulonglong)local_a0) + -1 + image->columns) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(image,(ushort)sVar13);\n      if ((image_info->compression == RLECompression) || (image_info->compression == FaxCompression)\n         ) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(image,local_48);\n      WriteBlobByte(image,(byte)local_a0);\n      if (1 < local_a0) {\n        local_46 = '\x01';\n      }\n      if ((image_info->compression == RLECompression) || (image_info->compression == FaxCompression)\n         ) {\n        local_46 = '\x02';\n      }\n      WriteBlobByte(image,local_46);\n      WriteBlobMSBShort(image,0);\n      WriteBlobByte(image,'\0');\n      if (image_info->compression == RLECompression) {\n        WriteBlobByte(image,'\x01');\n      }\n      else if (image_info->compression == FaxCompression) {\n        WriteBlobByte(image,'\0');\n      }\n      else {\n        WriteBlobByte(image,0xff);\n      }\n      WriteBlobMSBShort(image,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(image,'\x05');\n        WriteBlobByte(image,'\x06');\n        WriteBlobByte(image,'\x05');\n        WriteBlobByte(image,'\0');\n        WriteBlobMSBLong(image,0);\n        local_64 = 0x18;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 == 8) {\n          if ((local_48 & 0x4000) == 0) {\n            pIVar17 = ConstituteImage(0x100,1,"RGB",CharPixel,PalmPalette,exception);\n            TransformImageColorspace(pIVar17,pIVar17->colorspace,exception);\n            RemapImage(quantize_info,image,pIVar17,exception);\n            if (0 < (int)image->rows) {\n              sVar29 = image->columns;\n              local_78 = (char *)0x0;\n              do {\n                pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception);\n                if (pQVar14 == (Quantum *)0x0) break;\n                sVar29 = image->columns;\n                if (0 < (int)sVar29) {\n                  pPVar6 = image->colormap;\n                  local_d4 = 0;\n                  pPVar5 = image->channel_map;\n                  sVar25 = image->number_channels;\n                  PVar7 = pPVar5[5].traits;\nLAB_002618c8:\n                  pPVar23 = pPVar6;\n                  if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }\n                  dVar2 = pPVar23->red;\n                  if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  dVar2 = -1.0;\n                  goto LAB_00261adb;\n                }\nLAB_00261b09:\n                local_78 = (char *)((int)local_78 + 1);\n              } while ((int)local_78 < (int)image->rows);\n            }\n            DestroyImage(pIVar17);\n            local_64 = 0x10;\n          }\n          else {\n            MVar11 = IdentifyPaletteImage(image,exception);\n            quantize_info->dither_method = (MVar11 == MagickFalse) + NoDitherMethod;\n            quantize_info->number_colors = image->colors;\n            QuantizeImage(quantize_info,image,exception);\n            WriteBlobMSBShort(image,(ushort)image->colors);\n            if (image->colors == 0) {\n              local_64 = 0x12;\n            }\n            else {\n              iVar24 = 0;\n              local_d4 = 0;\n              do {\n                WriteBlobByte(image,(uchar)local_d4);\n                dVar2 = *(double *)((int)&image->colormap->red + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->green + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                iVar24 = iVar24 + 0x50;\n                WriteBlobByte(image,uVar10);\n                local_d4 = local_d4 + 1;\n              } while (local_d4 < image->colors);\n              local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12);\n            }\n          }\n        }\n      }\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(image,0);\n      }\n      local_7c = (char *)0x0;\n      pIVar17 = image;\n      if ((image_info->compression == FaxCompression) &&\n         (local_7c = (char *)AcquireQuantumMemory(sVar13 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(quantize_info);\n        ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x376,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n        p_Var8 = (_Image *)image_info->adjoin;\n        while (pIVar9 = image, p_Var8 != (_Image *)0x0) {\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }\nLAB_0026128c:\n        CloseBlob(pIVar17);\n        MVar11 = MagickFalse;\n        break;\n      }\n      __s = (char *)AcquireQuantumMemory(sVar13 + 0x100,1);\n      if (__s == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(quantize_info);\n        ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x380,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n        p_Var8 = (_Image *)image_info->adjoin;\n        while (pIVar9 = image, p_Var8 != (_Image *)0x0) {\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < (int)image->rows) {\n        iVar24 = 0;\n        do {\n          memset(__s,0,sVar13);\n          pQVar14 = GetVirtualPixels(image,0,iVar24,image->columns,1,exception);\n          if (pQVar14 == (Quantum *)0x0) break;\n          local_ac = image->columns;\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (PixelChannelMap *)0x0;\n            do {\n              pPVar5 = image->channel_map;\n              uVar18 = (((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f) / 0xffff;\n              if ((pPVar5[4].traits != UndefinedPixelTrait) && (pQVar14[pPVar5[4].offset] == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = pQVar14[pPVar5->offset];\n                local_8c = pQVar14[pPVar5[2].offset];\n                local_84 = pQVar14[pPVar5[1].offset];\n              }\n              __s[(int)local_b8 * 2] = (char)(uVar18 >> 8);\n              __s[(int)local_b8 * 2 + 1] = (char)uVar18;\n              local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n              pQVar14 = pQVar14 + image->number_channels;\n            } while ((int)local_b8 < (int)image->columns);\n            CVar16 = image_info->compression;\n            if (CVar16 != RLECompression) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)sVar13) {\n              iVar21 = 0;\n              do {\n                uVar10 = __s[iVar21];\n                iVar28 = iVar21 + 1;\n                if (uVar10 == __s[iVar21 + 1]) {\n                  if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }\n                  uVar18 = 1;\n                  do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);\n                }\n                else {\n                  uVar18 = 1;\n                }\n                WriteBlobByte(image,(uchar)uVar18);\n                WriteBlobByte(image,uVar10);\n                iVar21 = iVar28;\n              } while (iVar28 < (int)sVar13);\n            }\n          }\n          else {\n            uVar18 = (uint)(byte)(8 - local_45);\n            local_b8 = (PixelChannelMap *)__s;\n            if ((int)local_ac < 1) {\n              cVar26 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              do {\n                while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                local_ac = image->columns;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n            }\n            else {\n              local_b8 = image->channel_map;\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              local_9c = __s;\n              do {\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n              local_b8 = (PixelChannelMap *)local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *(char *)local_b8 = cVar26;\n            }\nLAB_0026097b:\n            CVar16 = image_info->compression;\n            if (CVar16 == RLECompression) goto LAB_00260d43;\nLAB_0026098a:\n            if (CVar16 == FaxCompression) {\n              if (0 < (int)sVar13) {\n                pcVar20 = __s;\n                sVar29 = sVar13;\n                pcVar1 = local_7c;\n                do {\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);\n              }\n              memcpy(local_7c,__s,sVar13);\n            }\n            else {\n              WriteBlob(image,sVar13,__s);\n            }\n          }\n          iVar24 = iVar24 + 1;\n        } while (iVar24 < (int)image->rows);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(image,local_74 + 6,0);\n        WriteBlobMSBShort(image,local_48);\n        local_64 = SeekBlob(image,local_74 + 0xc,0);\n        WriteBlobByte(image,'\0');\n      }\n      if (local_a0 == 0x10) {\n        local_64 = SeekBlob(image,local_74 + 0x14,0);\n        WriteBlobByte(image,'\0');\n        dVar2 = (double)DAT_00306a38;\n        dVar3 = (double)DAT_002df8a8;\n        WriteBlobByte(image,(uchar)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(image,(uchar)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar3));\n        WriteBlobByte(image,(uchar)(short)ROUND((dVar2 * local_8c) / dVar3));\n      }\n      if ((short)local_48 < 0) {\n        MVar32 = SeekBlob(image,local_74 + local_64,0);\n        MVar31 = GetBlobSize(image);\n        WriteBlobMSBShort(image,((short)MVar31 - (short)local_74) - (short)MVar32);\n      }\n      RelinquishMagickMemory(__s);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      pIVar17 = GetNextImageInList(image);\n      if (pIVar17 == (Image *)0x0) goto LAB_00261e48;\n      MVar31 = GetBlobSize(image);\n      uVar18 = (uint)MVar31 & 3;\n      iVar24 = 0;\n      if ((MVar31 & 3) != 0) {\n        do {\n          WriteBlobByte(image,'\0');\n          bVar30 = uVar18 != 0;\n          uVar18 = uVar18 - 1;\n          iVar24 = iVar24 + -1 + (uint)bVar30;\n        } while (iVar24 != 0 || uVar18 != 0);\n      }\n      SeekBlob(image,local_74 + 10,0);\n      MVar31 = GetBlobSize(image);\n      WriteBlobMSBShort(image,(ushort)((uint)(MVar31 - local_74) >> 2));\n      local_74 = GetBlobSize(image);\n      SeekBlob(image,local_74,0);\n      image = SyncNextImageInList(image);\n      bVar30 = 0xfffffffe < local_54;\n      MVar11 = SetImageProgress(image,"Save/Images",CONCAT44(local_50,local_54),(ulonglong)sVar12);\n      if ((MVar11 == MagickFalse) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30,\n         image_info->adjoin == MagickFalse)) goto LAB_00261e48;\n    } while( true );\n  }\nLAB_00260565:\n  if (iVar4 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return MVar11;\nLAB_00261ad3:\n  dVar2 = (double)iVar24;\nLAB_00261adb:\n  if (PVar7 != UndefinedPixelTrait) {\n    pQVar14[pPVar5[5].offset] = dVar2;\n  }\n  local_d4 = local_d4 + 1;\n  pQVar14 = pQVar14 + sVar25;\n  if (local_d4 == sVar29) goto LAB_00261b09;\n  goto LAB_002618c8;\nLAB_00261e48:\n  DestroyQuantizeInfo(quantize_info);\n  CloseBlob(image);\n  MVar11 = MagickTrue;\n  goto LAB_00260565;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "PixelChannelMap *pPVar5;" type_identifier (pointer_declarator "*pPVar5" * identifier) ;) (declaration "PixelInfo *pPVar6;" type_identifier (pointer_declarator "*pPVar6" * identifier) ;) (declaration "PixelTrait PVar7;" type_identifier identifier ;) (declaration "_Image *p_Var8;" type_identifier (pointer_declarator "*p_Var8" * identifier) ;) (declaration "Image *pIVar9;" type_identifier (pointer_declarator "*pIVar9" * identifier) ;) (declaration "byte value;" type_identifier identifier ;) (declaration "uchar uVar10;" type_identifier identifier ;) (declaration "MagickBooleanType MVar11;" type_identifier identifier ;) (declaration "QuantizeInfo *quantize_info;" type_identifier (pointer_declarator "*quantize_info" * identifier) ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "size_t sVar13;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "Quantum *pQVar14;" type_identifier (pointer_declarator "*pQVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "CompressionType CVar16;" type_identifier identifier ;) (declaration "Image *pIVar17;" type_identifier (pointer_declarator "*pIVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "char *pcVar20;" primitive_type (pointer_declarator "*pcVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (expression_statement "uchar (*pauVar22) [3];" (subscript_expression "uchar (*pauVar22) [3]" (call_expression "uchar (*pauVar22)" identifier (argument_list "(*pauVar22)" ( (pointer_expression "*pauVar22" * identifier) ))) [ number_literal ]) ;) (declaration "PixelInfo *pPVar23;" type_identifier (pointer_declarator "*pPVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "size_t sVar25;" primitive_type identifier ;) (declaration "char cVar26;" primitive_type identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "size_t sVar29;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar30;" primitive_type identifier ;) (declaration "MagickSizeType MVar31;" type_identifier identifier ;) (declaration "MagickOffsetType MVar32;" type_identifier identifier ;) (declaration "uint local_d4;" type_identifier identifier ;) (declaration "ulonglong local_cc;" type_identifier identifier ;) (declaration "PixelChannelMap *local_b8;" type_identifier (pointer_declarator "*local_b8" * identifier) ;) (declaration "char *local_b0;" primitive_type (pointer_declarator "*local_b0" * identifier) ;) (declaration "uint local_ac;" type_identifier identifier ;) (declaration "uint local_a0;" type_identifier identifier ;) (declaration "char *local_9c;" primitive_type (pointer_declarator "*local_9c" * identifier) ;) (declaration "double local_94;" primitive_type identifier ;) (declaration "double local_8c;" primitive_type identifier ;) (declaration "double local_84;" primitive_type identifier ;) (declaration "char *local_7c;" primitive_type (pointer_declarator "*local_7c" * identifier) ;) (declaration "char *local_78;" primitive_type (pointer_declarator "*local_78" * identifier) ;) (declaration "MagickSizeType local_74;" type_identifier identifier ;) (declaration "ulonglong local_64;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "ushort local_48;" type_identifier identifier ;) (declaration "uchar local_46;" type_identifier identifier ;) (declaration "byte local_45;" type_identifier identifier ;) (declaration "char tmpbuf [8];" primitive_type (array_declarator "tmpbuf [8]" identifier [ number_literal ]) ;) (expression_statement "iVar4 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar4 = *(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/palm.c",0x2ed,"WritePALMImage");\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/palm.c",0x2ed,"WritePALMImage");\n  }" { comment (expression_statement "__assert_fail("image_info != (const ImageInfo *) NULL","coders/palm.c",0x2ed,"WritePALMImage");" (call_expression "__assert_fail("image_info != (const ImageInfo *) NULL","coders/palm.c",0x2ed,"WritePALMImage")" identifier (argument_list "("image_info != (const ImageInfo *) NULL","coders/palm.c",0x2ed,"WritePALMImage")" ( (string_literal ""image_info != (const ImageInfo *) NULL"" " string_content ") , (string_literal ""coders/palm.c"" " string_content ") , number_literal , (string_literal ""WritePALMImage"" " string_content ") ))) ;) })) (if_statement "if (image_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage");\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/palm.c",0x2ee,\n                  "WritePALMImage");\n  }" { comment (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage")" identifier (argument_list "("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage")" ( (string_literal ""image_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/palm.c"" " string_content ") , number_literal , (string_literal ""WritePALMImage"" " string_content ") ))) ;) })) (if_statement "if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");\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/palm.c",0x2ef,"WritePALMImage");\n  }" { comment (expression_statement "__assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");" (call_expression "__assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage")" identifier (argument_list "("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""coders/palm.c"" " string_content ") , number_literal , (string_literal ""WritePALMImage"" " string_content ") ))) ;) })) (if_statement "if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");\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/palm.c",0x2f0,"WritePALMImage");\n  }" { comment (expression_statement "__assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage")" identifier (argument_list "("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/palm.c"" " string_content ") , number_literal , (string_literal ""WritePALMImage"" " string_content ") ))) ;) })) (if_statement "if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"coders/palm.c","WritePALMImage",0x2f2,"%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/palm.c","WritePALMImage",0x2f2,"%s",(char)image + '\x18');\n  }" { (expression_statement "LogMagickEvent(TraceEvent,"coders/palm.c","WritePALMImage",0x2f2,"%s",(char)image + '\x18');" (call_expression "LogMagickEvent(TraceEvent,"coders/palm.c","WritePALMImage",0x2f2,"%s",(char)image + '\x18')" identifier (argument_list "(TraceEvent,"coders/palm.c","WritePALMImage",0x2f2,"%s",(char)image + '\x18')" ( identifier , (string_literal ""coders/palm.c"" " string_content ") , (string_literal ""WritePALMImage"" " 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 (exception == (ExceptionInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");\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/palm.c",0x2f3,"WritePALMImage");\n  }" { comment (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage")" identifier (argument_list "("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage")" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""coders/palm.c"" " string_content ") , number_literal , (string_literal ""WritePALMImage"" " string_content ") ))) ;) })) (if_statement "if (exception->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage");\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/palm.c",0x2f4,\n                  "WritePALMImage");\n  }" { comment (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage");" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage")" identifier (argument_list "("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage")" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/palm.c"" " string_content ") , number_literal , (string_literal ""WritePALMImage"" " string_content ") ))) ;) })) (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) {\n    quantize_info = AcquireQuantizeInfo(image_info);\n    sVar12 = GetImageListLength(image);\n    local_8c = 0.0;\n    local_48 = 0;\n    local_84 = 0.0;\n    local_46 = '\0';\n    local_94 = 0.0;\n    local_54 = 0;\n    local_50 = 0;\n    local_74 = 0;\n    do {\n      TransformImageColorspace(image,sRGBColorspace,exception);\n      sVar13 = GetNumberColors(image,(FILE *)0x0,exception);\n      local_a0 = 1;\n      if (sVar13 < 3) {\n        TransformImageColorspace(image,image->colorspace,exception);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(image,GRAYColorspace,exception);\n        SetImageType(image,PaletteType,exception);\n        SortColormapByIntensity(image,exception);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < sVar13);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            TransformImageColorspace(image,image->colorspace,exception);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((image->storage_class == PseudoClass) &&\n         ((image->colors < 0x101 ||\n          (SetImageStorageClass(image,DirectClass,exception), image->storage_class == PseudoClass)))\n         ) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(image,(ushort)image->columns);\n      WriteBlobMSBShort(image,(ushort)image->rows);\n      sVar13 = (int)((ulonglong)((int)(0x10 / (ulonglong)local_a0) + -1 + image->columns) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(image,(ushort)sVar13);\n      if ((image_info->compression == RLECompression) || (image_info->compression == FaxCompression)\n         ) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(image,local_48);\n      WriteBlobByte(image,(byte)local_a0);\n      if (1 < local_a0) {\n        local_46 = '\x01';\n      }\n      if ((image_info->compression == RLECompression) || (image_info->compression == FaxCompression)\n         ) {\n        local_46 = '\x02';\n      }\n      WriteBlobByte(image,local_46);\n      WriteBlobMSBShort(image,0);\n      WriteBlobByte(image,'\0');\n      if (image_info->compression == RLECompression) {\n        WriteBlobByte(image,'\x01');\n      }\n      else if (image_info->compression == FaxCompression) {\n        WriteBlobByte(image,'\0');\n      }\n      else {\n        WriteBlobByte(image,0xff);\n      }\n      WriteBlobMSBShort(image,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(image,'\x05');\n        WriteBlobByte(image,'\x06');\n        WriteBlobByte(image,'\x05');\n        WriteBlobByte(image,'\0');\n        WriteBlobMSBLong(image,0);\n        local_64 = 0x18;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 == 8) {\n          if ((local_48 & 0x4000) == 0) {\n            pIVar17 = ConstituteImage(0x100,1,"RGB",CharPixel,PalmPalette,exception);\n            TransformImageColorspace(pIVar17,pIVar17->colorspace,exception);\n            RemapImage(quantize_info,image,pIVar17,exception);\n            if (0 < (int)image->rows) {\n              sVar29 = image->columns;\n              local_78 = (char *)0x0;\n              do {\n                pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception);\n                if (pQVar14 == (Quantum *)0x0) break;\n                sVar29 = image->columns;\n                if (0 < (int)sVar29) {\n                  pPVar6 = image->colormap;\n                  local_d4 = 0;\n                  pPVar5 = image->channel_map;\n                  sVar25 = image->number_channels;\n                  PVar7 = pPVar5[5].traits;\nLAB_002618c8:\n                  pPVar23 = pPVar6;\n                  if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }\n                  dVar2 = pPVar23->red;\n                  if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  dVar2 = -1.0;\n                  goto LAB_00261adb;\n                }\nLAB_00261b09:\n                local_78 = (char *)((int)local_78 + 1);\n              } while ((int)local_78 < (int)image->rows);\n            }\n            DestroyImage(pIVar17);\n            local_64 = 0x10;\n          }\n          else {\n            MVar11 = IdentifyPaletteImage(image,exception);\n            quantize_info->dither_method = (MVar11 == MagickFalse) + NoDitherMethod;\n            quantize_info->number_colors = image->colors;\n            QuantizeImage(quantize_info,image,exception);\n            WriteBlobMSBShort(image,(ushort)image->colors);\n            if (image->colors == 0) {\n              local_64 = 0x12;\n            }\n            else {\n              iVar24 = 0;\n              local_d4 = 0;\n              do {\n                WriteBlobByte(image,(uchar)local_d4);\n                dVar2 = *(double *)((int)&image->colormap->red + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->green + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                iVar24 = iVar24 + 0x50;\n                WriteBlobByte(image,uVar10);\n                local_d4 = local_d4 + 1;\n              } while (local_d4 < image->colors);\n              local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12);\n            }\n          }\n        }\n      }\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(image,0);\n      }\n      local_7c = (char *)0x0;\n      pIVar17 = image;\n      if ((image_info->compression == FaxCompression) &&\n         (local_7c = (char *)AcquireQuantumMemory(sVar13 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(quantize_info);\n        ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x376,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n        p_Var8 = (_Image *)image_info->adjoin;\n        while (pIVar9 = image, p_Var8 != (_Image *)0x0) {\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }\nLAB_0026128c:\n        CloseBlob(pIVar17);\n        MVar11 = MagickFalse;\n        break;\n      }\n      __s = (char *)AcquireQuantumMemory(sVar13 + 0x100,1);\n      if (__s == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(quantize_info);\n        ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x380,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n        p_Var8 = (_Image *)image_info->adjoin;\n        while (pIVar9 = image, p_Var8 != (_Image *)0x0) {\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < (int)image->rows) {\n        iVar24 = 0;\n        do {\n          memset(__s,0,sVar13);\n          pQVar14 = GetVirtualPixels(image,0,iVar24,image->columns,1,exception);\n          if (pQVar14 == (Quantum *)0x0) break;\n          local_ac = image->columns;\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (PixelChannelMap *)0x0;\n            do {\n              pPVar5 = image->channel_map;\n              uVar18 = (((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f) / 0xffff;\n              if ((pPVar5[4].traits != UndefinedPixelTrait) && (pQVar14[pPVar5[4].offset] == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = pQVar14[pPVar5->offset];\n                local_8c = pQVar14[pPVar5[2].offset];\n                local_84 = pQVar14[pPVar5[1].offset];\n              }\n              __s[(int)local_b8 * 2] = (char)(uVar18 >> 8);\n              __s[(int)local_b8 * 2 + 1] = (char)uVar18;\n              local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n              pQVar14 = pQVar14 + image->number_channels;\n            } while ((int)local_b8 < (int)image->columns);\n            CVar16 = image_info->compression;\n            if (CVar16 != RLECompression) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)sVar13) {\n              iVar21 = 0;\n              do {\n                uVar10 = __s[iVar21];\n                iVar28 = iVar21 + 1;\n                if (uVar10 == __s[iVar21 + 1]) {\n                  if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }\n                  uVar18 = 1;\n                  do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);\n                }\n                else {\n                  uVar18 = 1;\n                }\n                WriteBlobByte(image,(uchar)uVar18);\n                WriteBlobByte(image,uVar10);\n                iVar21 = iVar28;\n              } while (iVar28 < (int)sVar13);\n            }\n          }\n          else {\n            uVar18 = (uint)(byte)(8 - local_45);\n            local_b8 = (PixelChannelMap *)__s;\n            if ((int)local_ac < 1) {\n              cVar26 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              do {\n                while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                local_ac = image->columns;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n            }\n            else {\n              local_b8 = image->channel_map;\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              local_9c = __s;\n              do {\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n              local_b8 = (PixelChannelMap *)local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *(char *)local_b8 = cVar26;\n            }\nLAB_0026097b:\n            CVar16 = image_info->compression;\n            if (CVar16 == RLECompression) goto LAB_00260d43;\nLAB_0026098a:\n            if (CVar16 == FaxCompression) {\n              if (0 < (int)sVar13) {\n                pcVar20 = __s;\n                sVar29 = sVar13;\n                pcVar1 = local_7c;\n                do {\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);\n              }\n              memcpy(local_7c,__s,sVar13);\n            }\n            else {\n              WriteBlob(image,sVar13,__s);\n            }\n          }\n          iVar24 = iVar24 + 1;\n        } while (iVar24 < (int)image->rows);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(image,local_74 + 6,0);\n        WriteBlobMSBShort(image,local_48);\n        local_64 = SeekBlob(image,local_74 + 0xc,0);\n        WriteBlobByte(image,'\0');\n      }\n      if (local_a0 == 0x10) {\n        local_64 = SeekBlob(image,local_74 + 0x14,0);\n        WriteBlobByte(image,'\0');\n        dVar2 = (double)DAT_00306a38;\n        dVar3 = (double)DAT_002df8a8;\n        WriteBlobByte(image,(uchar)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(image,(uchar)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar3));\n        WriteBlobByte(image,(uchar)(short)ROUND((dVar2 * local_8c) / dVar3));\n      }\n      if ((short)local_48 < 0) {\n        MVar32 = SeekBlob(image,local_74 + local_64,0);\n        MVar31 = GetBlobSize(image);\n        WriteBlobMSBShort(image,((short)MVar31 - (short)local_74) - (short)MVar32);\n      }\n      RelinquishMagickMemory(__s);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      pIVar17 = GetNextImageInList(image);\n      if (pIVar17 == (Image *)0x0) goto LAB_00261e48;\n      MVar31 = GetBlobSize(image);\n      uVar18 = (uint)MVar31 & 3;\n      iVar24 = 0;\n      if ((MVar31 & 3) != 0) {\n        do {\n          WriteBlobByte(image,'\0');\n          bVar30 = uVar18 != 0;\n          uVar18 = uVar18 - 1;\n          iVar24 = iVar24 + -1 + (uint)bVar30;\n        } while (iVar24 != 0 || uVar18 != 0);\n      }\n      SeekBlob(image,local_74 + 10,0);\n      MVar31 = GetBlobSize(image);\n      WriteBlobMSBShort(image,(ushort)((uint)(MVar31 - local_74) >> 2));\n      local_74 = GetBlobSize(image);\n      SeekBlob(image,local_74,0);\n      image = SyncNextImageInList(image);\n      bVar30 = 0xfffffffe < local_54;\n      MVar11 = SetImageProgress(image,"Save/Images",CONCAT44(local_50,local_54),(ulonglong)sVar12);\n      if ((MVar11 == MagickFalse) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30,\n         image_info->adjoin == MagickFalse)) goto LAB_00261e48;\n    } while( true );\n  }" if (parenthesized_expression "(MVar11 != MagickFalse)" ( (binary_expression "MVar11 != MagickFalse" identifier != identifier) )) (compound_statement "{\n    quantize_info = AcquireQuantizeInfo(image_info);\n    sVar12 = GetImageListLength(image);\n    local_8c = 0.0;\n    local_48 = 0;\n    local_84 = 0.0;\n    local_46 = '\0';\n    local_94 = 0.0;\n    local_54 = 0;\n    local_50 = 0;\n    local_74 = 0;\n    do {\n      TransformImageColorspace(image,sRGBColorspace,exception);\n      sVar13 = GetNumberColors(image,(FILE *)0x0,exception);\n      local_a0 = 1;\n      if (sVar13 < 3) {\n        TransformImageColorspace(image,image->colorspace,exception);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(image,GRAYColorspace,exception);\n        SetImageType(image,PaletteType,exception);\n        SortColormapByIntensity(image,exception);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < sVar13);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            TransformImageColorspace(image,image->colorspace,exception);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((image->storage_class == PseudoClass) &&\n         ((image->colors < 0x101 ||\n          (SetImageStorageClass(image,DirectClass,exception), image->storage_class == PseudoClass)))\n         ) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(image,(ushort)image->columns);\n      WriteBlobMSBShort(image,(ushort)image->rows);\n      sVar13 = (int)((ulonglong)((int)(0x10 / (ulonglong)local_a0) + -1 + image->columns) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(image,(ushort)sVar13);\n      if ((image_info->compression == RLECompression) || (image_info->compression == FaxCompression)\n         ) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(image,local_48);\n      WriteBlobByte(image,(byte)local_a0);\n      if (1 < local_a0) {\n        local_46 = '\x01';\n      }\n      if ((image_info->compression == RLECompression) || (image_info->compression == FaxCompression)\n         ) {\n        local_46 = '\x02';\n      }\n      WriteBlobByte(image,local_46);\n      WriteBlobMSBShort(image,0);\n      WriteBlobByte(image,'\0');\n      if (image_info->compression == RLECompression) {\n        WriteBlobByte(image,'\x01');\n      }\n      else if (image_info->compression == FaxCompression) {\n        WriteBlobByte(image,'\0');\n      }\n      else {\n        WriteBlobByte(image,0xff);\n      }\n      WriteBlobMSBShort(image,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(image,'\x05');\n        WriteBlobByte(image,'\x06');\n        WriteBlobByte(image,'\x05');\n        WriteBlobByte(image,'\0');\n        WriteBlobMSBLong(image,0);\n        local_64 = 0x18;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 == 8) {\n          if ((local_48 & 0x4000) == 0) {\n            pIVar17 = ConstituteImage(0x100,1,"RGB",CharPixel,PalmPalette,exception);\n            TransformImageColorspace(pIVar17,pIVar17->colorspace,exception);\n            RemapImage(quantize_info,image,pIVar17,exception);\n            if (0 < (int)image->rows) {\n              sVar29 = image->columns;\n              local_78 = (char *)0x0;\n              do {\n                pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception);\n                if (pQVar14 == (Quantum *)0x0) break;\n                sVar29 = image->columns;\n                if (0 < (int)sVar29) {\n                  pPVar6 = image->colormap;\n                  local_d4 = 0;\n                  pPVar5 = image->channel_map;\n                  sVar25 = image->number_channels;\n                  PVar7 = pPVar5[5].traits;\nLAB_002618c8:\n                  pPVar23 = pPVar6;\n                  if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }\n                  dVar2 = pPVar23->red;\n                  if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  dVar2 = -1.0;\n                  goto LAB_00261adb;\n                }\nLAB_00261b09:\n                local_78 = (char *)((int)local_78 + 1);\n              } while ((int)local_78 < (int)image->rows);\n            }\n            DestroyImage(pIVar17);\n            local_64 = 0x10;\n          }\n          else {\n            MVar11 = IdentifyPaletteImage(image,exception);\n            quantize_info->dither_method = (MVar11 == MagickFalse) + NoDitherMethod;\n            quantize_info->number_colors = image->colors;\n            QuantizeImage(quantize_info,image,exception);\n            WriteBlobMSBShort(image,(ushort)image->colors);\n            if (image->colors == 0) {\n              local_64 = 0x12;\n            }\n            else {\n              iVar24 = 0;\n              local_d4 = 0;\n              do {\n                WriteBlobByte(image,(uchar)local_d4);\n                dVar2 = *(double *)((int)&image->colormap->red + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->green + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                iVar24 = iVar24 + 0x50;\n                WriteBlobByte(image,uVar10);\n                local_d4 = local_d4 + 1;\n              } while (local_d4 < image->colors);\n              local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12);\n            }\n          }\n        }\n      }\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(image,0);\n      }\n      local_7c = (char *)0x0;\n      pIVar17 = image;\n      if ((image_info->compression == FaxCompression) &&\n         (local_7c = (char *)AcquireQuantumMemory(sVar13 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(quantize_info);\n        ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x376,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n        p_Var8 = (_Image *)image_info->adjoin;\n        while (pIVar9 = image, p_Var8 != (_Image *)0x0) {\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }\nLAB_0026128c:\n        CloseBlob(pIVar17);\n        MVar11 = MagickFalse;\n        break;\n      }\n      __s = (char *)AcquireQuantumMemory(sVar13 + 0x100,1);\n      if (__s == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(quantize_info);\n        ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x380,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n        p_Var8 = (_Image *)image_info->adjoin;\n        while (pIVar9 = image, p_Var8 != (_Image *)0x0) {\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < (int)image->rows) {\n        iVar24 = 0;\n        do {\n          memset(__s,0,sVar13);\n          pQVar14 = GetVirtualPixels(image,0,iVar24,image->columns,1,exception);\n          if (pQVar14 == (Quantum *)0x0) break;\n          local_ac = image->columns;\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (PixelChannelMap *)0x0;\n            do {\n              pPVar5 = image->channel_map;\n              uVar18 = (((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f) / 0xffff;\n              if ((pPVar5[4].traits != UndefinedPixelTrait) && (pQVar14[pPVar5[4].offset] == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = pQVar14[pPVar5->offset];\n                local_8c = pQVar14[pPVar5[2].offset];\n                local_84 = pQVar14[pPVar5[1].offset];\n              }\n              __s[(int)local_b8 * 2] = (char)(uVar18 >> 8);\n              __s[(int)local_b8 * 2 + 1] = (char)uVar18;\n              local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n              pQVar14 = pQVar14 + image->number_channels;\n            } while ((int)local_b8 < (int)image->columns);\n            CVar16 = image_info->compression;\n            if (CVar16 != RLECompression) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)sVar13) {\n              iVar21 = 0;\n              do {\n                uVar10 = __s[iVar21];\n                iVar28 = iVar21 + 1;\n                if (uVar10 == __s[iVar21 + 1]) {\n                  if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }\n                  uVar18 = 1;\n                  do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);\n                }\n                else {\n                  uVar18 = 1;\n                }\n                WriteBlobByte(image,(uchar)uVar18);\n                WriteBlobByte(image,uVar10);\n                iVar21 = iVar28;\n              } while (iVar28 < (int)sVar13);\n            }\n          }\n          else {\n            uVar18 = (uint)(byte)(8 - local_45);\n            local_b8 = (PixelChannelMap *)__s;\n            if ((int)local_ac < 1) {\n              cVar26 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              do {\n                while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                local_ac = image->columns;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n            }\n            else {\n              local_b8 = image->channel_map;\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              local_9c = __s;\n              do {\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n              local_b8 = (PixelChannelMap *)local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *(char *)local_b8 = cVar26;\n            }\nLAB_0026097b:\n            CVar16 = image_info->compression;\n            if (CVar16 == RLECompression) goto LAB_00260d43;\nLAB_0026098a:\n            if (CVar16 == FaxCompression) {\n              if (0 < (int)sVar13) {\n                pcVar20 = __s;\n                sVar29 = sVar13;\n                pcVar1 = local_7c;\n                do {\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);\n              }\n              memcpy(local_7c,__s,sVar13);\n            }\n            else {\n              WriteBlob(image,sVar13,__s);\n            }\n          }\n          iVar24 = iVar24 + 1;\n        } while (iVar24 < (int)image->rows);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(image,local_74 + 6,0);\n        WriteBlobMSBShort(image,local_48);\n        local_64 = SeekBlob(image,local_74 + 0xc,0);\n        WriteBlobByte(image,'\0');\n      }\n      if (local_a0 == 0x10) {\n        local_64 = SeekBlob(image,local_74 + 0x14,0);\n        WriteBlobByte(image,'\0');\n        dVar2 = (double)DAT_00306a38;\n        dVar3 = (double)DAT_002df8a8;\n        WriteBlobByte(image,(uchar)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(image,(uchar)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar3));\n        WriteBlobByte(image,(uchar)(short)ROUND((dVar2 * local_8c) / dVar3));\n      }\n      if ((short)local_48 < 0) {\n        MVar32 = SeekBlob(image,local_74 + local_64,0);\n        MVar31 = GetBlobSize(image);\n        WriteBlobMSBShort(image,((short)MVar31 - (short)local_74) - (short)MVar32);\n      }\n      RelinquishMagickMemory(__s);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      pIVar17 = GetNextImageInList(image);\n      if (pIVar17 == (Image *)0x0) goto LAB_00261e48;\n      MVar31 = GetBlobSize(image);\n      uVar18 = (uint)MVar31 & 3;\n      iVar24 = 0;\n      if ((MVar31 & 3) != 0) {\n        do {\n          WriteBlobByte(image,'\0');\n          bVar30 = uVar18 != 0;\n          uVar18 = uVar18 - 1;\n          iVar24 = iVar24 + -1 + (uint)bVar30;\n        } while (iVar24 != 0 || uVar18 != 0);\n      }\n      SeekBlob(image,local_74 + 10,0);\n      MVar31 = GetBlobSize(image);\n      WriteBlobMSBShort(image,(ushort)((uint)(MVar31 - local_74) >> 2));\n      local_74 = GetBlobSize(image);\n      SeekBlob(image,local_74,0);\n      image = SyncNextImageInList(image);\n      bVar30 = 0xfffffffe < local_54;\n      MVar11 = SetImageProgress(image,"Save/Images",CONCAT44(local_50,local_54),(ulonglong)sVar12);\n      if ((MVar11 == MagickFalse) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30,\n         image_info->adjoin == MagickFalse)) goto LAB_00261e48;\n    } while( true );\n  }" { (expression_statement "quantize_info = AcquireQuantizeInfo(image_info);" (assignment_expression "quantize_info = AcquireQuantizeInfo(image_info)" identifier = (call_expression "AcquireQuantizeInfo(image_info)" identifier (argument_list "(image_info)" ( identifier )))) ;) (expression_statement "sVar12 = GetImageListLength(image);" (assignment_expression "sVar12 = GetImageListLength(image)" identifier = (call_expression "GetImageListLength(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "local_8c = 0.0;" (assignment_expression "local_8c = 0.0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_84 = 0.0;" (assignment_expression "local_84 = 0.0" identifier = number_literal) ;) (expression_statement "local_46 = '\0';" (assignment_expression "local_46 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_94 = 0.0;" (assignment_expression "local_94 = 0.0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) (do_statement "do {\n      TransformImageColorspace(image,sRGBColorspace,exception);\n      sVar13 = GetNumberColors(image,(FILE *)0x0,exception);\n      local_a0 = 1;\n      if (sVar13 < 3) {\n        TransformImageColorspace(image,image->colorspace,exception);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(image,GRAYColorspace,exception);\n        SetImageType(image,PaletteType,exception);\n        SortColormapByIntensity(image,exception);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < sVar13);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            TransformImageColorspace(image,image->colorspace,exception);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((image->storage_class == PseudoClass) &&\n         ((image->colors < 0x101 ||\n          (SetImageStorageClass(image,DirectClass,exception), image->storage_class == PseudoClass)))\n         ) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(image,(ushort)image->columns);\n      WriteBlobMSBShort(image,(ushort)image->rows);\n      sVar13 = (int)((ulonglong)((int)(0x10 / (ulonglong)local_a0) + -1 + image->columns) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(image,(ushort)sVar13);\n      if ((image_info->compression == RLECompression) || (image_info->compression == FaxCompression)\n         ) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(image,local_48);\n      WriteBlobByte(image,(byte)local_a0);\n      if (1 < local_a0) {\n        local_46 = '\x01';\n      }\n      if ((image_info->compression == RLECompression) || (image_info->compression == FaxCompression)\n         ) {\n        local_46 = '\x02';\n      }\n      WriteBlobByte(image,local_46);\n      WriteBlobMSBShort(image,0);\n      WriteBlobByte(image,'\0');\n      if (image_info->compression == RLECompression) {\n        WriteBlobByte(image,'\x01');\n      }\n      else if (image_info->compression == FaxCompression) {\n        WriteBlobByte(image,'\0');\n      }\n      else {\n        WriteBlobByte(image,0xff);\n      }\n      WriteBlobMSBShort(image,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(image,'\x05');\n        WriteBlobByte(image,'\x06');\n        WriteBlobByte(image,'\x05');\n        WriteBlobByte(image,'\0');\n        WriteBlobMSBLong(image,0);\n        local_64 = 0x18;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 == 8) {\n          if ((local_48 & 0x4000) == 0) {\n            pIVar17 = ConstituteImage(0x100,1,"RGB",CharPixel,PalmPalette,exception);\n            TransformImageColorspace(pIVar17,pIVar17->colorspace,exception);\n            RemapImage(quantize_info,image,pIVar17,exception);\n            if (0 < (int)image->rows) {\n              sVar29 = image->columns;\n              local_78 = (char *)0x0;\n              do {\n                pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception);\n                if (pQVar14 == (Quantum *)0x0) break;\n                sVar29 = image->columns;\n                if (0 < (int)sVar29) {\n                  pPVar6 = image->colormap;\n                  local_d4 = 0;\n                  pPVar5 = image->channel_map;\n                  sVar25 = image->number_channels;\n                  PVar7 = pPVar5[5].traits;\nLAB_002618c8:\n                  pPVar23 = pPVar6;\n                  if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }\n                  dVar2 = pPVar23->red;\n                  if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  dVar2 = -1.0;\n                  goto LAB_00261adb;\n                }\nLAB_00261b09:\n                local_78 = (char *)((int)local_78 + 1);\n              } while ((int)local_78 < (int)image->rows);\n            }\n            DestroyImage(pIVar17);\n            local_64 = 0x10;\n          }\n          else {\n            MVar11 = IdentifyPaletteImage(image,exception);\n            quantize_info->dither_method = (MVar11 == MagickFalse) + NoDitherMethod;\n            quantize_info->number_colors = image->colors;\n            QuantizeImage(quantize_info,image,exception);\n            WriteBlobMSBShort(image,(ushort)image->colors);\n            if (image->colors == 0) {\n              local_64 = 0x12;\n            }\n            else {\n              iVar24 = 0;\n              local_d4 = 0;\n              do {\n                WriteBlobByte(image,(uchar)local_d4);\n                dVar2 = *(double *)((int)&image->colormap->red + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->green + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                iVar24 = iVar24 + 0x50;\n                WriteBlobByte(image,uVar10);\n                local_d4 = local_d4 + 1;\n              } while (local_d4 < image->colors);\n              local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12);\n            }\n          }\n        }\n      }\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(image,0);\n      }\n      local_7c = (char *)0x0;\n      pIVar17 = image;\n      if ((image_info->compression == FaxCompression) &&\n         (local_7c = (char *)AcquireQuantumMemory(sVar13 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(quantize_info);\n        ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x376,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n        p_Var8 = (_Image *)image_info->adjoin;\n        while (pIVar9 = image, p_Var8 != (_Image *)0x0) {\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }\nLAB_0026128c:\n        CloseBlob(pIVar17);\n        MVar11 = MagickFalse;\n        break;\n      }\n      __s = (char *)AcquireQuantumMemory(sVar13 + 0x100,1);\n      if (__s == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(quantize_info);\n        ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x380,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n        p_Var8 = (_Image *)image_info->adjoin;\n        while (pIVar9 = image, p_Var8 != (_Image *)0x0) {\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < (int)image->rows) {\n        iVar24 = 0;\n        do {\n          memset(__s,0,sVar13);\n          pQVar14 = GetVirtualPixels(image,0,iVar24,image->columns,1,exception);\n          if (pQVar14 == (Quantum *)0x0) break;\n          local_ac = image->columns;\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (PixelChannelMap *)0x0;\n            do {\n              pPVar5 = image->channel_map;\n              uVar18 = (((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f) / 0xffff;\n              if ((pPVar5[4].traits != UndefinedPixelTrait) && (pQVar14[pPVar5[4].offset] == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = pQVar14[pPVar5->offset];\n                local_8c = pQVar14[pPVar5[2].offset];\n                local_84 = pQVar14[pPVar5[1].offset];\n              }\n              __s[(int)local_b8 * 2] = (char)(uVar18 >> 8);\n              __s[(int)local_b8 * 2 + 1] = (char)uVar18;\n              local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n              pQVar14 = pQVar14 + image->number_channels;\n            } while ((int)local_b8 < (int)image->columns);\n            CVar16 = image_info->compression;\n            if (CVar16 != RLECompression) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)sVar13) {\n              iVar21 = 0;\n              do {\n                uVar10 = __s[iVar21];\n                iVar28 = iVar21 + 1;\n                if (uVar10 == __s[iVar21 + 1]) {\n                  if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }\n                  uVar18 = 1;\n                  do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);\n                }\n                else {\n                  uVar18 = 1;\n                }\n                WriteBlobByte(image,(uchar)uVar18);\n                WriteBlobByte(image,uVar10);\n                iVar21 = iVar28;\n              } while (iVar28 < (int)sVar13);\n            }\n          }\n          else {\n            uVar18 = (uint)(byte)(8 - local_45);\n            local_b8 = (PixelChannelMap *)__s;\n            if ((int)local_ac < 1) {\n              cVar26 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              do {\n                while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                local_ac = image->columns;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n            }\n            else {\n              local_b8 = image->channel_map;\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              local_9c = __s;\n              do {\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n              local_b8 = (PixelChannelMap *)local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *(char *)local_b8 = cVar26;\n            }\nLAB_0026097b:\n            CVar16 = image_info->compression;\n            if (CVar16 == RLECompression) goto LAB_00260d43;\nLAB_0026098a:\n            if (CVar16 == FaxCompression) {\n              if (0 < (int)sVar13) {\n                pcVar20 = __s;\n                sVar29 = sVar13;\n                pcVar1 = local_7c;\n                do {\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);\n              }\n              memcpy(local_7c,__s,sVar13);\n            }\n            else {\n              WriteBlob(image,sVar13,__s);\n            }\n          }\n          iVar24 = iVar24 + 1;\n        } while (iVar24 < (int)image->rows);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(image,local_74 + 6,0);\n        WriteBlobMSBShort(image,local_48);\n        local_64 = SeekBlob(image,local_74 + 0xc,0);\n        WriteBlobByte(image,'\0');\n      }\n      if (local_a0 == 0x10) {\n        local_64 = SeekBlob(image,local_74 + 0x14,0);\n        WriteBlobByte(image,'\0');\n        dVar2 = (double)DAT_00306a38;\n        dVar3 = (double)DAT_002df8a8;\n        WriteBlobByte(image,(uchar)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(image,(uchar)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar3));\n        WriteBlobByte(image,(uchar)(short)ROUND((dVar2 * local_8c) / dVar3));\n      }\n      if ((short)local_48 < 0) {\n        MVar32 = SeekBlob(image,local_74 + local_64,0);\n        MVar31 = GetBlobSize(image);\n        WriteBlobMSBShort(image,((short)MVar31 - (short)local_74) - (short)MVar32);\n      }\n      RelinquishMagickMemory(__s);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      pIVar17 = GetNextImageInList(image);\n      if (pIVar17 == (Image *)0x0) goto LAB_00261e48;\n      MVar31 = GetBlobSize(image);\n      uVar18 = (uint)MVar31 & 3;\n      iVar24 = 0;\n      if ((MVar31 & 3) != 0) {\n        do {\n          WriteBlobByte(image,'\0');\n          bVar30 = uVar18 != 0;\n          uVar18 = uVar18 - 1;\n          iVar24 = iVar24 + -1 + (uint)bVar30;\n        } while (iVar24 != 0 || uVar18 != 0);\n      }\n      SeekBlob(image,local_74 + 10,0);\n      MVar31 = GetBlobSize(image);\n      WriteBlobMSBShort(image,(ushort)((uint)(MVar31 - local_74) >> 2));\n      local_74 = GetBlobSize(image);\n      SeekBlob(image,local_74,0);\n      image = SyncNextImageInList(image);\n      bVar30 = 0xfffffffe < local_54;\n      MVar11 = SetImageProgress(image,"Save/Images",CONCAT44(local_50,local_54),(ulonglong)sVar12);\n      if ((MVar11 == MagickFalse) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30,\n         image_info->adjoin == MagickFalse)) goto LAB_00261e48;\n    } while( true );" do (compound_statement "{\n      TransformImageColorspace(image,sRGBColorspace,exception);\n      sVar13 = GetNumberColors(image,(FILE *)0x0,exception);\n      local_a0 = 1;\n      if (sVar13 < 3) {\n        TransformImageColorspace(image,image->colorspace,exception);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(image,GRAYColorspace,exception);\n        SetImageType(image,PaletteType,exception);\n        SortColormapByIntensity(image,exception);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < sVar13);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            TransformImageColorspace(image,image->colorspace,exception);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((image->storage_class == PseudoClass) &&\n         ((image->colors < 0x101 ||\n          (SetImageStorageClass(image,DirectClass,exception), image->storage_class == PseudoClass)))\n         ) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(image,(ushort)image->columns);\n      WriteBlobMSBShort(image,(ushort)image->rows);\n      sVar13 = (int)((ulonglong)((int)(0x10 / (ulonglong)local_a0) + -1 + image->columns) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(image,(ushort)sVar13);\n      if ((image_info->compression == RLECompression) || (image_info->compression == FaxCompression)\n         ) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(image,local_48);\n      WriteBlobByte(image,(byte)local_a0);\n      if (1 < local_a0) {\n        local_46 = '\x01';\n      }\n      if ((image_info->compression == RLECompression) || (image_info->compression == FaxCompression)\n         ) {\n        local_46 = '\x02';\n      }\n      WriteBlobByte(image,local_46);\n      WriteBlobMSBShort(image,0);\n      WriteBlobByte(image,'\0');\n      if (image_info->compression == RLECompression) {\n        WriteBlobByte(image,'\x01');\n      }\n      else if (image_info->compression == FaxCompression) {\n        WriteBlobByte(image,'\0');\n      }\n      else {\n        WriteBlobByte(image,0xff);\n      }\n      WriteBlobMSBShort(image,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(image,'\x05');\n        WriteBlobByte(image,'\x06');\n        WriteBlobByte(image,'\x05');\n        WriteBlobByte(image,'\0');\n        WriteBlobMSBLong(image,0);\n        local_64 = 0x18;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 == 8) {\n          if ((local_48 & 0x4000) == 0) {\n            pIVar17 = ConstituteImage(0x100,1,"RGB",CharPixel,PalmPalette,exception);\n            TransformImageColorspace(pIVar17,pIVar17->colorspace,exception);\n            RemapImage(quantize_info,image,pIVar17,exception);\n            if (0 < (int)image->rows) {\n              sVar29 = image->columns;\n              local_78 = (char *)0x0;\n              do {\n                pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception);\n                if (pQVar14 == (Quantum *)0x0) break;\n                sVar29 = image->columns;\n                if (0 < (int)sVar29) {\n                  pPVar6 = image->colormap;\n                  local_d4 = 0;\n                  pPVar5 = image->channel_map;\n                  sVar25 = image->number_channels;\n                  PVar7 = pPVar5[5].traits;\nLAB_002618c8:\n                  pPVar23 = pPVar6;\n                  if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }\n                  dVar2 = pPVar23->red;\n                  if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  dVar2 = -1.0;\n                  goto LAB_00261adb;\n                }\nLAB_00261b09:\n                local_78 = (char *)((int)local_78 + 1);\n              } while ((int)local_78 < (int)image->rows);\n            }\n            DestroyImage(pIVar17);\n            local_64 = 0x10;\n          }\n          else {\n            MVar11 = IdentifyPaletteImage(image,exception);\n            quantize_info->dither_method = (MVar11 == MagickFalse) + NoDitherMethod;\n            quantize_info->number_colors = image->colors;\n            QuantizeImage(quantize_info,image,exception);\n            WriteBlobMSBShort(image,(ushort)image->colors);\n            if (image->colors == 0) {\n              local_64 = 0x12;\n            }\n            else {\n              iVar24 = 0;\n              local_d4 = 0;\n              do {\n                WriteBlobByte(image,(uchar)local_d4);\n                dVar2 = *(double *)((int)&image->colormap->red + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->green + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                iVar24 = iVar24 + 0x50;\n                WriteBlobByte(image,uVar10);\n                local_d4 = local_d4 + 1;\n              } while (local_d4 < image->colors);\n              local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12);\n            }\n          }\n        }\n      }\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(image,0);\n      }\n      local_7c = (char *)0x0;\n      pIVar17 = image;\n      if ((image_info->compression == FaxCompression) &&\n         (local_7c = (char *)AcquireQuantumMemory(sVar13 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(quantize_info);\n        ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x376,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n        p_Var8 = (_Image *)image_info->adjoin;\n        while (pIVar9 = image, p_Var8 != (_Image *)0x0) {\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }\nLAB_0026128c:\n        CloseBlob(pIVar17);\n        MVar11 = MagickFalse;\n        break;\n      }\n      __s = (char *)AcquireQuantumMemory(sVar13 + 0x100,1);\n      if (__s == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(quantize_info);\n        ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x380,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n        p_Var8 = (_Image *)image_info->adjoin;\n        while (pIVar9 = image, p_Var8 != (_Image *)0x0) {\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < (int)image->rows) {\n        iVar24 = 0;\n        do {\n          memset(__s,0,sVar13);\n          pQVar14 = GetVirtualPixels(image,0,iVar24,image->columns,1,exception);\n          if (pQVar14 == (Quantum *)0x0) break;\n          local_ac = image->columns;\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (PixelChannelMap *)0x0;\n            do {\n              pPVar5 = image->channel_map;\n              uVar18 = (((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f) / 0xffff;\n              if ((pPVar5[4].traits != UndefinedPixelTrait) && (pQVar14[pPVar5[4].offset] == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = pQVar14[pPVar5->offset];\n                local_8c = pQVar14[pPVar5[2].offset];\n                local_84 = pQVar14[pPVar5[1].offset];\n              }\n              __s[(int)local_b8 * 2] = (char)(uVar18 >> 8);\n              __s[(int)local_b8 * 2 + 1] = (char)uVar18;\n              local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n              pQVar14 = pQVar14 + image->number_channels;\n            } while ((int)local_b8 < (int)image->columns);\n            CVar16 = image_info->compression;\n            if (CVar16 != RLECompression) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)sVar13) {\n              iVar21 = 0;\n              do {\n                uVar10 = __s[iVar21];\n                iVar28 = iVar21 + 1;\n                if (uVar10 == __s[iVar21 + 1]) {\n                  if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }\n                  uVar18 = 1;\n                  do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);\n                }\n                else {\n                  uVar18 = 1;\n                }\n                WriteBlobByte(image,(uchar)uVar18);\n                WriteBlobByte(image,uVar10);\n                iVar21 = iVar28;\n              } while (iVar28 < (int)sVar13);\n            }\n          }\n          else {\n            uVar18 = (uint)(byte)(8 - local_45);\n            local_b8 = (PixelChannelMap *)__s;\n            if ((int)local_ac < 1) {\n              cVar26 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              do {\n                while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                local_ac = image->columns;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n            }\n            else {\n              local_b8 = image->channel_map;\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              local_9c = __s;\n              do {\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n              local_b8 = (PixelChannelMap *)local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *(char *)local_b8 = cVar26;\n            }\nLAB_0026097b:\n            CVar16 = image_info->compression;\n            if (CVar16 == RLECompression) goto LAB_00260d43;\nLAB_0026098a:\n            if (CVar16 == FaxCompression) {\n              if (0 < (int)sVar13) {\n                pcVar20 = __s;\n                sVar29 = sVar13;\n                pcVar1 = local_7c;\n                do {\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);\n              }\n              memcpy(local_7c,__s,sVar13);\n            }\n            else {\n              WriteBlob(image,sVar13,__s);\n            }\n          }\n          iVar24 = iVar24 + 1;\n        } while (iVar24 < (int)image->rows);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(image,local_74 + 6,0);\n        WriteBlobMSBShort(image,local_48);\n        local_64 = SeekBlob(image,local_74 + 0xc,0);\n        WriteBlobByte(image,'\0');\n      }\n      if (local_a0 == 0x10) {\n        local_64 = SeekBlob(image,local_74 + 0x14,0);\n        WriteBlobByte(image,'\0');\n        dVar2 = (double)DAT_00306a38;\n        dVar3 = (double)DAT_002df8a8;\n        WriteBlobByte(image,(uchar)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(image,(uchar)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar3));\n        WriteBlobByte(image,(uchar)(short)ROUND((dVar2 * local_8c) / dVar3));\n      }\n      if ((short)local_48 < 0) {\n        MVar32 = SeekBlob(image,local_74 + local_64,0);\n        MVar31 = GetBlobSize(image);\n        WriteBlobMSBShort(image,((short)MVar31 - (short)local_74) - (short)MVar32);\n      }\n      RelinquishMagickMemory(__s);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      pIVar17 = GetNextImageInList(image);\n      if (pIVar17 == (Image *)0x0) goto LAB_00261e48;\n      MVar31 = GetBlobSize(image);\n      uVar18 = (uint)MVar31 & 3;\n      iVar24 = 0;\n      if ((MVar31 & 3) != 0) {\n        do {\n          WriteBlobByte(image,'\0');\n          bVar30 = uVar18 != 0;\n          uVar18 = uVar18 - 1;\n          iVar24 = iVar24 + -1 + (uint)bVar30;\n        } while (iVar24 != 0 || uVar18 != 0);\n      }\n      SeekBlob(image,local_74 + 10,0);\n      MVar31 = GetBlobSize(image);\n      WriteBlobMSBShort(image,(ushort)((uint)(MVar31 - local_74) >> 2));\n      local_74 = GetBlobSize(image);\n      SeekBlob(image,local_74,0);\n      image = SyncNextImageInList(image);\n      bVar30 = 0xfffffffe < local_54;\n      MVar11 = SetImageProgress(image,"Save/Images",CONCAT44(local_50,local_54),(ulonglong)sVar12);\n      if ((MVar11 == MagickFalse) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30,\n         image_info->adjoin == MagickFalse)) goto LAB_00261e48;\n    }" { (expression_statement "TransformImageColorspace(image,sRGBColorspace,exception);" (call_expression "TransformImageColorspace(image,sRGBColorspace,exception)" identifier (argument_list "(image,sRGBColorspace,exception)" ( identifier , identifier , identifier ))) ;) (expression_statement "sVar13 = GetNumberColors(image,(FILE *)0x0,exception);" (assignment_expression "sVar13 = GetNumberColors(image,(FILE *)0x0,exception)" identifier = (call_expression "GetNumberColors(image,(FILE *)0x0,exception)" identifier (argument_list "(image,(FILE *)0x0,exception)" ( identifier , (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (expression_statement "local_a0 = 1;" (assignment_expression "local_a0 = 1" identifier = number_literal) ;) (if_statement "if (sVar13 < 3) {\n        TransformImageColorspace(image,image->colorspace,exception);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(image,GRAYColorspace,exception);\n        SetImageType(image,PaletteType,exception);\n        SortColormapByIntensity(image,exception);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < sVar13);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            TransformImageColorspace(image,image->colorspace,exception);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }" if (parenthesized_expression "(sVar13 < 3)" ( (binary_expression "sVar13 < 3" identifier < number_literal) )) (compound_statement "{\n        TransformImageColorspace(image,image->colorspace,exception);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(image,GRAYColorspace,exception);\n        SetImageType(image,PaletteType,exception);\n        SortColormapByIntensity(image,exception);\n      }" { (expression_statement "TransformImageColorspace(image,image->colorspace,exception);" (call_expression "TransformImageColorspace(image,image->colorspace,exception)" identifier (argument_list "(image,image->colorspace,exception)" ( identifier , (field_expression "image->colorspace" identifier -> field_identifier) , identifier ))) ;) (expression_statement "local_a0 = 1;" (assignment_expression "local_a0 = 1" identifier = number_literal) ;) (expression_statement "local_45 = 1;" (assignment_expression "local_45 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00261df3:\n        TransformImageColorspace(image,GRAYColorspace,exception);" statement_identifier : (expression_statement "TransformImageColorspace(image,GRAYColorspace,exception);" (call_expression "TransformImageColorspace(image,GRAYColorspace,exception)" identifier (argument_list "(image,GRAYColorspace,exception)" ( identifier , identifier , identifier ))) ;)) (expression_statement "SetImageType(image,PaletteType,exception);" (call_expression "SetImageType(image,PaletteType,exception)" identifier (argument_list "(image,PaletteType,exception)" ( identifier , identifier , identifier ))) ;) (expression_statement "SortColormapByIntensity(image,exception);" (call_expression "SortColormapByIntensity(image,exception)" identifier (argument_list "(image,exception)" ( identifier , identifier ))) ;) }) (else_clause "else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < sVar13);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            TransformImageColorspace(image,image->colorspace,exception);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }" else (compound_statement "{\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < sVar13);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            TransformImageColorspace(image,image->colorspace,exception);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }" { (do_statement "do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < sVar13);" do (compound_statement "{\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        }" { (expression_statement "local_a0 = local_a0 * 2;" (assignment_expression "local_a0 = local_a0 * 2" identifier = (binary_expression "local_a0 * 2" identifier * number_literal)) ;) (expression_statement "local_45 = (byte)local_a0;" (assignment_expression "local_45 = (byte)local_a0" identifier = (cast_expression "(byte)local_a0" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "((uint)(1 << (local_45 & 0x1f)) < sVar13)" ( (binary_expression "(uint)(1 << (local_45 & 0x1f)) < sVar13" (call_expression "(uint)(1 << (local_45 & 0x1f))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 << (local_45 & 0x1f))" ( (binary_expression "1 << (local_45 & 0x1f)" number_literal << (parenthesized_expression "(local_45 & 0x1f)" ( (binary_expression "local_45 & 0x1f" identifier & number_literal) ))) ))) < identifier) )) ;) (if_statement "if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            TransformImageColorspace(image,image->colorspace,exception);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }" if (parenthesized_expression "(local_a0 < 0x11)" ( (binary_expression "local_a0 < 0x11" identifier < number_literal) )) (compound_statement "{\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            TransformImageColorspace(image,image->colorspace,exception);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }" { (if_statement "if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            TransformImageColorspace(image,image->colorspace,exception);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }" if (parenthesized_expression "(local_a0 == 0x10)" ( (binary_expression "local_a0 == 0x10" identifier == number_literal) )) (compound_statement "{\n            local_45 = 0x10;\n          }" { (expression_statement "local_45 = 0x10;" (assignment_expression "local_45 = 0x10" identifier = number_literal) ;) }) (else_clause "else {\n            TransformImageColorspace(image,image->colorspace,exception);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }" else (compound_statement "{\n            TransformImageColorspace(image,image->colorspace,exception);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }" { (expression_statement "TransformImageColorspace(image,image->colorspace,exception);" (call_expression "TransformImageColorspace(image,image->colorspace,exception)" identifier (argument_list "(image,image->colorspace,exception)" ( identifier , (field_expression "image->colorspace" identifier -> field_identifier) , identifier ))) ;) (if_statement "if (local_a0 < 8) goto LAB_00261df3;" if (parenthesized_expression "(local_a0 < 8)" ( (binary_expression "local_a0 < 8" identifier < number_literal) )) (goto_statement "goto LAB_00261df3;" goto statement_identifier ;)) }))) }) (else_clause "else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }" else (compound_statement "{\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }" { (expression_statement "local_a0 = 0x10;" (assignment_expression "local_a0 = 0x10" identifier = number_literal) ;) (expression_statement "local_45 = 0x10;" (assignment_expression "local_45 = 0x10" identifier = number_literal) ;) }))) }))) (if_statement "if ((image->storage_class == PseudoClass) &&\n         ((image->colors < 0x101 ||\n          (SetImageStorageClass(image,DirectClass,exception), image->storage_class == PseudoClass)))\n         ) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }" if (parenthesized_expression "((image->storage_class == PseudoClass) &&\n         ((image->colors < 0x101 ||\n          (SetImageStorageClass(image,DirectClass,exception), image->storage_class == PseudoClass)))\n         )" ( (binary_expression "(image->storage_class == PseudoClass) &&\n         ((image->colors < 0x101 ||\n          (SetImageStorageClass(image,DirectClass,exception), image->storage_class == PseudoClass)))" (parenthesized_expression "(image->storage_class == PseudoClass)" ( (binary_expression "image->storage_class == PseudoClass" (field_expression "image->storage_class" identifier -> field_identifier) == identifier) )) && (parenthesized_expression "((image->colors < 0x101 ||\n          (SetImageStorageClass(image,DirectClass,exception), image->storage_class == PseudoClass)))" ( (parenthesized_expression "(image->colors < 0x101 ||\n          (SetImageStorageClass(image,DirectClass,exception), image->storage_class == PseudoClass))" ( (binary_expression "image->colors < 0x101 ||\n          (SetImageStorageClass(image,DirectClass,exception), image->storage_class == PseudoClass)" (binary_expression "image->colors < 0x101" (field_expression "image->colors" identifier -> field_identifier) < number_literal) || (parenthesized_expression "(SetImageStorageClass(image,DirectClass,exception), image->storage_class == PseudoClass)" ( (comma_expression "SetImageStorageClass(image,DirectClass,exception), image->storage_class == PseudoClass" (call_expression "SetImageStorageClass(image,DirectClass,exception)" identifier (argument_list "(image,DirectClass,exception)" ( identifier , identifier , identifier ))) , (binary_expression "image->storage_class == PseudoClass" (field_expression "image->storage_class" identifier -> field_identifier) == identifier)) ))) )) ))) )) (compound_statement "{\n        local_48 = local_48 | 0x4000;\n      }" { (expression_statement "local_48 = local_48 | 0x4000;" (assignment_expression "local_48 = local_48 | 0x4000" identifier = (binary_expression "local_48 | 0x4000" identifier | number_literal)) ;) }) (else_clause "else {\n        local_48 = local_48 | 0x400;\n      }" else (compound_statement "{\n        local_48 = local_48 | 0x400;\n      }" { (expression_statement "local_48 = local_48 | 0x400;" (assignment_expression "local_48 = local_48 | 0x400" identifier = (binary_expression "local_48 | 0x400" 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 "sVar13 = (int)((ulonglong)((int)(0x10 / (ulonglong)local_a0) + -1 + image->columns) /\n                    (0x10 / (ulonglong)local_a0)) * 2;" (assignment_expression "sVar13 = (int)((ulonglong)((int)(0x10 / (ulonglong)local_a0) + -1 + image->columns) /\n                    (0x10 / (ulonglong)local_a0)) * 2" identifier = (binary_expression "(int)((ulonglong)((int)(0x10 / (ulonglong)local_a0) + -1 + image->columns) /\n                    (0x10 / (ulonglong)local_a0)) * 2" (cast_expression "(int)((ulonglong)((int)(0x10 / (ulonglong)local_a0) + -1 + image->columns) /\n                    (0x10 / (ulonglong)local_a0))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)((int)(0x10 / (ulonglong)local_a0) + -1 + image->columns) /\n                    (0x10 / (ulonglong)local_a0))" ( (binary_expression "(ulonglong)((int)(0x10 / (ulonglong)local_a0) + -1 + image->columns) /\n                    (0x10 / (ulonglong)local_a0)" (call_expression "(ulonglong)((int)(0x10 / (ulonglong)local_a0) + -1 + image->columns)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "((int)(0x10 / (ulonglong)local_a0) + -1 + image->columns)" ( (binary_expression "(int)(0x10 / (ulonglong)local_a0) + -1 + image->columns" (binary_expression "(int)(0x10 / (ulonglong)local_a0) + -1" (cast_expression "(int)(0x10 / (ulonglong)local_a0)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(0x10 / (ulonglong)local_a0)" ( (binary_expression "0x10 / (ulonglong)local_a0" number_literal / (cast_expression "(ulonglong)local_a0" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ))) + number_literal) + (field_expression "image->columns" identifier -> field_identifier)) ))) / (parenthesized_expression "(0x10 / (ulonglong)local_a0)" ( (binary_expression "0x10 / (ulonglong)local_a0" number_literal / (cast_expression "(ulonglong)local_a0" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ))) ))) * number_literal)) ;) (expression_statement "WriteBlobMSBShort(image,(ushort)sVar13);" (call_expression "WriteBlobMSBShort(image,(ushort)sVar13)" identifier (argument_list "(image,(ushort)sVar13)" ( identifier , (cast_expression "(ushort)sVar13" ( (type_descriptor "ushort" type_identifier) ) identifier) ))) ;) (if_statement "if ((image_info->compression == RLECompression) || (image_info->compression == FaxCompression)\n         ) {\n        local_48 = local_48 | 0x8000;\n      }" if (parenthesized_expression "((image_info->compression == RLECompression) || (image_info->compression == FaxCompression)\n         )" ( (binary_expression "(image_info->compression == RLECompression) || (image_info->compression == FaxCompression)" (parenthesized_expression "(image_info->compression == RLECompression)" ( (binary_expression "image_info->compression == RLECompression" (field_expression "image_info->compression" identifier -> field_identifier) == identifier) )) || (parenthesized_expression "(image_info->compression == FaxCompression)" ( (binary_expression "image_info->compression == FaxCompression" (field_expression "image_info->compression" identifier -> field_identifier) == identifier) ))) )) (compound_statement "{\n        local_48 = local_48 | 0x8000;\n      }" { (expression_statement "local_48 = local_48 | 0x8000;" (assignment_expression "local_48 = local_48 | 0x8000" identifier = (binary_expression "local_48 | 0x8000" identifier | number_literal)) ;) })) (expression_statement "WriteBlobMSBShort(image,local_48);" (call_expression "WriteBlobMSBShort(image,local_48)" identifier (argument_list "(image,local_48)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobByte(image,(byte)local_a0);" (call_expression "WriteBlobByte(image,(byte)local_a0)" identifier (argument_list "(image,(byte)local_a0)" ( identifier , (cast_expression "(byte)local_a0" ( (type_descriptor "byte" type_identifier) ) identifier) ))) ;) (if_statement "if (1 < local_a0) {\n        local_46 = '\x01';\n      }" if (parenthesized_expression "(1 < local_a0)" ( (binary_expression "1 < local_a0" number_literal < identifier) )) (compound_statement "{\n        local_46 = '\x01';\n      }" { (expression_statement "local_46 = '\x01';" (assignment_expression "local_46 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) })) (if_statement "if ((image_info->compression == RLECompression) || (image_info->compression == FaxCompression)\n         ) {\n        local_46 = '\x02';\n      }" if (parenthesized_expression "((image_info->compression == RLECompression) || (image_info->compression == FaxCompression)\n         )" ( (binary_expression "(image_info->compression == RLECompression) || (image_info->compression == FaxCompression)" (parenthesized_expression "(image_info->compression == RLECompression)" ( (binary_expression "image_info->compression == RLECompression" (field_expression "image_info->compression" identifier -> field_identifier) == identifier) )) || (parenthesized_expression "(image_info->compression == FaxCompression)" ( (binary_expression "image_info->compression == FaxCompression" (field_expression "image_info->compression" identifier -> field_identifier) == identifier) ))) )) (compound_statement "{\n        local_46 = '\x02';\n      }" { (expression_statement "local_46 = '\x02';" (assignment_expression "local_46 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) })) (expression_statement "WriteBlobByte(image,local_46);" (call_expression "WriteBlobByte(image,local_46)" identifier (argument_list "(image,local_46)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobByte(image,'\0');" (call_expression "WriteBlobByte(image,'\0')" identifier (argument_list "(image,'\0')" ( identifier , (char_literal "'\0'" ' escape_sequence ') ))) ;) (if_statement "if (image_info->compression == RLECompression) {\n        WriteBlobByte(image,'\x01');\n      }\n      else if (image_info->compression == FaxCompression) {\n        WriteBlobByte(image,'\0');\n      }\n      else {\n        WriteBlobByte(image,0xff);\n      }" if (parenthesized_expression "(image_info->compression == RLECompression)" ( (binary_expression "image_info->compression == RLECompression" (field_expression "image_info->compression" identifier -> field_identifier) == identifier) )) (compound_statement "{\n        WriteBlobByte(image,'\x01');\n      }" { (expression_statement "WriteBlobByte(image,'\x01');" (call_expression "WriteBlobByte(image,'\x01')" identifier (argument_list "(image,'\x01')" ( identifier , (char_literal "'\x01'" ' escape_sequence ') ))) ;) }) (else_clause "else if (image_info->compression == FaxCompression) {\n        WriteBlobByte(image,'\0');\n      }\n      else {\n        WriteBlobByte(image,0xff);\n      }" else (if_statement "if (image_info->compression == FaxCompression) {\n        WriteBlobByte(image,'\0');\n      }\n      else {\n        WriteBlobByte(image,0xff);\n      }" if (parenthesized_expression "(image_info->compression == FaxCompression)" ( (binary_expression "image_info->compression == FaxCompression" (field_expression "image_info->compression" identifier -> field_identifier) == identifier) )) (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 ') ))) ;) }) (else_clause "else {\n        WriteBlobByte(image,0xff);\n      }" else (compound_statement "{\n        WriteBlobByte(image,0xff);\n      }" { (expression_statement "WriteBlobByte(image,0xff);" (call_expression "WriteBlobByte(image,0xff)" identifier (argument_list "(image,0xff)" ( identifier , number_literal ))) ;) }))))) (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (if_statement "if (local_a0 == 0x10) {\n        WriteBlobByte(image,'\x05');\n        WriteBlobByte(image,'\x06');\n        WriteBlobByte(image,'\x05');\n        WriteBlobByte(image,'\0');\n        WriteBlobMSBLong(image,0);\n        local_64 = 0x18;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 == 8) {\n          if ((local_48 & 0x4000) == 0) {\n            pIVar17 = ConstituteImage(0x100,1,"RGB",CharPixel,PalmPalette,exception);\n            TransformImageColorspace(pIVar17,pIVar17->colorspace,exception);\n            RemapImage(quantize_info,image,pIVar17,exception);\n            if (0 < (int)image->rows) {\n              sVar29 = image->columns;\n              local_78 = (char *)0x0;\n              do {\n                pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception);\n                if (pQVar14 == (Quantum *)0x0) break;\n                sVar29 = image->columns;\n                if (0 < (int)sVar29) {\n                  pPVar6 = image->colormap;\n                  local_d4 = 0;\n                  pPVar5 = image->channel_map;\n                  sVar25 = image->number_channels;\n                  PVar7 = pPVar5[5].traits;\nLAB_002618c8:\n                  pPVar23 = pPVar6;\n                  if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }\n                  dVar2 = pPVar23->red;\n                  if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  dVar2 = -1.0;\n                  goto LAB_00261adb;\n                }\nLAB_00261b09:\n                local_78 = (char *)((int)local_78 + 1);\n              } while ((int)local_78 < (int)image->rows);\n            }\n            DestroyImage(pIVar17);\n            local_64 = 0x10;\n          }\n          else {\n            MVar11 = IdentifyPaletteImage(image,exception);\n            quantize_info->dither_method = (MVar11 == MagickFalse) + NoDitherMethod;\n            quantize_info->number_colors = image->colors;\n            QuantizeImage(quantize_info,image,exception);\n            WriteBlobMSBShort(image,(ushort)image->colors);\n            if (image->colors == 0) {\n              local_64 = 0x12;\n            }\n            else {\n              iVar24 = 0;\n              local_d4 = 0;\n              do {\n                WriteBlobByte(image,(uchar)local_d4);\n                dVar2 = *(double *)((int)&image->colormap->red + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->green + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                iVar24 = iVar24 + 0x50;\n                WriteBlobByte(image,uVar10);\n                local_d4 = local_d4 + 1;\n              } while (local_d4 < image->colors);\n              local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(local_a0 == 0x10)" ( (binary_expression "local_a0 == 0x10" identifier == number_literal) )) (compound_statement "{\n        WriteBlobByte(image,'\x05');\n        WriteBlobByte(image,'\x06');\n        WriteBlobByte(image,'\x05');\n        WriteBlobByte(image,'\0');\n        WriteBlobMSBLong(image,0);\n        local_64 = 0x18;\n      }" { (expression_statement "WriteBlobByte(image,'\x05');" (call_expression "WriteBlobByte(image,'\x05')" identifier (argument_list "(image,'\x05')" ( identifier , (char_literal "'\x05'" ' escape_sequence ') ))) ;) (expression_statement "WriteBlobByte(image,'\x06');" (call_expression "WriteBlobByte(image,'\x06')" identifier (argument_list "(image,'\x06')" ( identifier , (char_literal "'\x06'" ' escape_sequence ') ))) ;) (expression_statement "WriteBlobByte(image,'\x05');" (call_expression "WriteBlobByte(image,'\x05')" identifier (argument_list "(image,'\x05')" ( identifier , (char_literal "'\x05'" ' escape_sequence ') ))) ;) (expression_statement "WriteBlobByte(image,'\0');" (call_expression "WriteBlobByte(image,'\0')" identifier (argument_list "(image,'\0')" ( identifier , (char_literal "'\0'" ' escape_sequence ') ))) ;) (expression_statement "WriteBlobMSBLong(image,0);" (call_expression "WriteBlobMSBLong(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) (expression_statement "local_64 = 0x18;" (assignment_expression "local_64 = 0x18" identifier = number_literal) ;) }) (else_clause "else {\n        local_64 = 0x10;\n        if (local_a0 == 8) {\n          if ((local_48 & 0x4000) == 0) {\n            pIVar17 = ConstituteImage(0x100,1,"RGB",CharPixel,PalmPalette,exception);\n            TransformImageColorspace(pIVar17,pIVar17->colorspace,exception);\n            RemapImage(quantize_info,image,pIVar17,exception);\n            if (0 < (int)image->rows) {\n              sVar29 = image->columns;\n              local_78 = (char *)0x0;\n              do {\n                pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception);\n                if (pQVar14 == (Quantum *)0x0) break;\n                sVar29 = image->columns;\n                if (0 < (int)sVar29) {\n                  pPVar6 = image->colormap;\n                  local_d4 = 0;\n                  pPVar5 = image->channel_map;\n                  sVar25 = image->number_channels;\n                  PVar7 = pPVar5[5].traits;\nLAB_002618c8:\n                  pPVar23 = pPVar6;\n                  if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }\n                  dVar2 = pPVar23->red;\n                  if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  dVar2 = -1.0;\n                  goto LAB_00261adb;\n                }\nLAB_00261b09:\n                local_78 = (char *)((int)local_78 + 1);\n              } while ((int)local_78 < (int)image->rows);\n            }\n            DestroyImage(pIVar17);\n            local_64 = 0x10;\n          }\n          else {\n            MVar11 = IdentifyPaletteImage(image,exception);\n            quantize_info->dither_method = (MVar11 == MagickFalse) + NoDitherMethod;\n            quantize_info->number_colors = image->colors;\n            QuantizeImage(quantize_info,image,exception);\n            WriteBlobMSBShort(image,(ushort)image->colors);\n            if (image->colors == 0) {\n              local_64 = 0x12;\n            }\n            else {\n              iVar24 = 0;\n              local_d4 = 0;\n              do {\n                WriteBlobByte(image,(uchar)local_d4);\n                dVar2 = *(double *)((int)&image->colormap->red + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->green + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                iVar24 = iVar24 + 0x50;\n                WriteBlobByte(image,uVar10);\n                local_d4 = local_d4 + 1;\n              } while (local_d4 < image->colors);\n              local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12);\n            }\n          }\n        }\n      }" else (compound_statement "{\n        local_64 = 0x10;\n        if (local_a0 == 8) {\n          if ((local_48 & 0x4000) == 0) {\n            pIVar17 = ConstituteImage(0x100,1,"RGB",CharPixel,PalmPalette,exception);\n            TransformImageColorspace(pIVar17,pIVar17->colorspace,exception);\n            RemapImage(quantize_info,image,pIVar17,exception);\n            if (0 < (int)image->rows) {\n              sVar29 = image->columns;\n              local_78 = (char *)0x0;\n              do {\n                pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception);\n                if (pQVar14 == (Quantum *)0x0) break;\n                sVar29 = image->columns;\n                if (0 < (int)sVar29) {\n                  pPVar6 = image->colormap;\n                  local_d4 = 0;\n                  pPVar5 = image->channel_map;\n                  sVar25 = image->number_channels;\n                  PVar7 = pPVar5[5].traits;\nLAB_002618c8:\n                  pPVar23 = pPVar6;\n                  if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }\n                  dVar2 = pPVar23->red;\n                  if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  dVar2 = -1.0;\n                  goto LAB_00261adb;\n                }\nLAB_00261b09:\n                local_78 = (char *)((int)local_78 + 1);\n              } while ((int)local_78 < (int)image->rows);\n            }\n            DestroyImage(pIVar17);\n            local_64 = 0x10;\n          }\n          else {\n            MVar11 = IdentifyPaletteImage(image,exception);\n            quantize_info->dither_method = (MVar11 == MagickFalse) + NoDitherMethod;\n            quantize_info->number_colors = image->colors;\n            QuantizeImage(quantize_info,image,exception);\n            WriteBlobMSBShort(image,(ushort)image->colors);\n            if (image->colors == 0) {\n              local_64 = 0x12;\n            }\n            else {\n              iVar24 = 0;\n              local_d4 = 0;\n              do {\n                WriteBlobByte(image,(uchar)local_d4);\n                dVar2 = *(double *)((int)&image->colormap->red + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->green + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                iVar24 = iVar24 + 0x50;\n                WriteBlobByte(image,uVar10);\n                local_d4 = local_d4 + 1;\n              } while (local_d4 < image->colors);\n              local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12);\n            }\n          }\n        }\n      }" { (expression_statement "local_64 = 0x10;" (assignment_expression "local_64 = 0x10" identifier = number_literal) ;) (if_statement "if (local_a0 == 8) {\n          if ((local_48 & 0x4000) == 0) {\n            pIVar17 = ConstituteImage(0x100,1,"RGB",CharPixel,PalmPalette,exception);\n            TransformImageColorspace(pIVar17,pIVar17->colorspace,exception);\n            RemapImage(quantize_info,image,pIVar17,exception);\n            if (0 < (int)image->rows) {\n              sVar29 = image->columns;\n              local_78 = (char *)0x0;\n              do {\n                pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception);\n                if (pQVar14 == (Quantum *)0x0) break;\n                sVar29 = image->columns;\n                if (0 < (int)sVar29) {\n                  pPVar6 = image->colormap;\n                  local_d4 = 0;\n                  pPVar5 = image->channel_map;\n                  sVar25 = image->number_channels;\n                  PVar7 = pPVar5[5].traits;\nLAB_002618c8:\n                  pPVar23 = pPVar6;\n                  if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }\n                  dVar2 = pPVar23->red;\n                  if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  dVar2 = -1.0;\n                  goto LAB_00261adb;\n                }\nLAB_00261b09:\n                local_78 = (char *)((int)local_78 + 1);\n              } while ((int)local_78 < (int)image->rows);\n            }\n            DestroyImage(pIVar17);\n            local_64 = 0x10;\n          }\n          else {\n            MVar11 = IdentifyPaletteImage(image,exception);\n            quantize_info->dither_method = (MVar11 == MagickFalse) + NoDitherMethod;\n            quantize_info->number_colors = image->colors;\n            QuantizeImage(quantize_info,image,exception);\n            WriteBlobMSBShort(image,(ushort)image->colors);\n            if (image->colors == 0) {\n              local_64 = 0x12;\n            }\n            else {\n              iVar24 = 0;\n              local_d4 = 0;\n              do {\n                WriteBlobByte(image,(uchar)local_d4);\n                dVar2 = *(double *)((int)&image->colormap->red + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->green + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                iVar24 = iVar24 + 0x50;\n                WriteBlobByte(image,uVar10);\n                local_d4 = local_d4 + 1;\n              } while (local_d4 < image->colors);\n              local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12);\n            }\n          }\n        }" if (parenthesized_expression "(local_a0 == 8)" ( (binary_expression "local_a0 == 8" identifier == number_literal) )) (compound_statement "{\n          if ((local_48 & 0x4000) == 0) {\n            pIVar17 = ConstituteImage(0x100,1,"RGB",CharPixel,PalmPalette,exception);\n            TransformImageColorspace(pIVar17,pIVar17->colorspace,exception);\n            RemapImage(quantize_info,image,pIVar17,exception);\n            if (0 < (int)image->rows) {\n              sVar29 = image->columns;\n              local_78 = (char *)0x0;\n              do {\n                pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception);\n                if (pQVar14 == (Quantum *)0x0) break;\n                sVar29 = image->columns;\n                if (0 < (int)sVar29) {\n                  pPVar6 = image->colormap;\n                  local_d4 = 0;\n                  pPVar5 = image->channel_map;\n                  sVar25 = image->number_channels;\n                  PVar7 = pPVar5[5].traits;\nLAB_002618c8:\n                  pPVar23 = pPVar6;\n                  if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }\n                  dVar2 = pPVar23->red;\n                  if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  dVar2 = -1.0;\n                  goto LAB_00261adb;\n                }\nLAB_00261b09:\n                local_78 = (char *)((int)local_78 + 1);\n              } while ((int)local_78 < (int)image->rows);\n            }\n            DestroyImage(pIVar17);\n            local_64 = 0x10;\n          }\n          else {\n            MVar11 = IdentifyPaletteImage(image,exception);\n            quantize_info->dither_method = (MVar11 == MagickFalse) + NoDitherMethod;\n            quantize_info->number_colors = image->colors;\n            QuantizeImage(quantize_info,image,exception);\n            WriteBlobMSBShort(image,(ushort)image->colors);\n            if (image->colors == 0) {\n              local_64 = 0x12;\n            }\n            else {\n              iVar24 = 0;\n              local_d4 = 0;\n              do {\n                WriteBlobByte(image,(uchar)local_d4);\n                dVar2 = *(double *)((int)&image->colormap->red + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->green + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                iVar24 = iVar24 + 0x50;\n                WriteBlobByte(image,uVar10);\n                local_d4 = local_d4 + 1;\n              } while (local_d4 < image->colors);\n              local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12);\n            }\n          }\n        }" { (if_statement "if ((local_48 & 0x4000) == 0) {\n            pIVar17 = ConstituteImage(0x100,1,"RGB",CharPixel,PalmPalette,exception);\n            TransformImageColorspace(pIVar17,pIVar17->colorspace,exception);\n            RemapImage(quantize_info,image,pIVar17,exception);\n            if (0 < (int)image->rows) {\n              sVar29 = image->columns;\n              local_78 = (char *)0x0;\n              do {\n                pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception);\n                if (pQVar14 == (Quantum *)0x0) break;\n                sVar29 = image->columns;\n                if (0 < (int)sVar29) {\n                  pPVar6 = image->colormap;\n                  local_d4 = 0;\n                  pPVar5 = image->channel_map;\n                  sVar25 = image->number_channels;\n                  PVar7 = pPVar5[5].traits;\nLAB_002618c8:\n                  pPVar23 = pPVar6;\n                  if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }\n                  dVar2 = pPVar23->red;\n                  if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  dVar2 = -1.0;\n                  goto LAB_00261adb;\n                }\nLAB_00261b09:\n                local_78 = (char *)((int)local_78 + 1);\n              } while ((int)local_78 < (int)image->rows);\n            }\n            DestroyImage(pIVar17);\n            local_64 = 0x10;\n          }\n          else {\n            MVar11 = IdentifyPaletteImage(image,exception);\n            quantize_info->dither_method = (MVar11 == MagickFalse) + NoDitherMethod;\n            quantize_info->number_colors = image->colors;\n            QuantizeImage(quantize_info,image,exception);\n            WriteBlobMSBShort(image,(ushort)image->colors);\n            if (image->colors == 0) {\n              local_64 = 0x12;\n            }\n            else {\n              iVar24 = 0;\n              local_d4 = 0;\n              do {\n                WriteBlobByte(image,(uchar)local_d4);\n                dVar2 = *(double *)((int)&image->colormap->red + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->green + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                iVar24 = iVar24 + 0x50;\n                WriteBlobByte(image,uVar10);\n                local_d4 = local_d4 + 1;\n              } while (local_d4 < image->colors);\n              local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12);\n            }\n          }" if (parenthesized_expression "((local_48 & 0x4000) == 0)" ( (binary_expression "(local_48 & 0x4000) == 0" (parenthesized_expression "(local_48 & 0x4000)" ( (binary_expression "local_48 & 0x4000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            pIVar17 = ConstituteImage(0x100,1,"RGB",CharPixel,PalmPalette,exception);\n            TransformImageColorspace(pIVar17,pIVar17->colorspace,exception);\n            RemapImage(quantize_info,image,pIVar17,exception);\n            if (0 < (int)image->rows) {\n              sVar29 = image->columns;\n              local_78 = (char *)0x0;\n              do {\n                pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception);\n                if (pQVar14 == (Quantum *)0x0) break;\n                sVar29 = image->columns;\n                if (0 < (int)sVar29) {\n                  pPVar6 = image->colormap;\n                  local_d4 = 0;\n                  pPVar5 = image->channel_map;\n                  sVar25 = image->number_channels;\n                  PVar7 = pPVar5[5].traits;\nLAB_002618c8:\n                  pPVar23 = pPVar6;\n                  if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }\n                  dVar2 = pPVar23->red;\n                  if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  dVar2 = -1.0;\n                  goto LAB_00261adb;\n                }\nLAB_00261b09:\n                local_78 = (char *)((int)local_78 + 1);\n              } while ((int)local_78 < (int)image->rows);\n            }\n            DestroyImage(pIVar17);\n            local_64 = 0x10;\n          }" { (expression_statement "pIVar17 = ConstituteImage(0x100,1,"RGB",CharPixel,PalmPalette,exception);" (assignment_expression "pIVar17 = ConstituteImage(0x100,1,"RGB",CharPixel,PalmPalette,exception)" identifier = (call_expression "ConstituteImage(0x100,1,"RGB",CharPixel,PalmPalette,exception)" identifier (argument_list "(0x100,1,"RGB",CharPixel,PalmPalette,exception)" ( number_literal , number_literal , (string_literal ""RGB"" " string_content ") , identifier , identifier , identifier )))) ;) (expression_statement "TransformImageColorspace(pIVar17,pIVar17->colorspace,exception);" (call_expression "TransformImageColorspace(pIVar17,pIVar17->colorspace,exception)" identifier (argument_list "(pIVar17,pIVar17->colorspace,exception)" ( identifier , (field_expression "pIVar17->colorspace" identifier -> field_identifier) , identifier ))) ;) (expression_statement "RemapImage(quantize_info,image,pIVar17,exception);" (call_expression "RemapImage(quantize_info,image,pIVar17,exception)" identifier (argument_list "(quantize_info,image,pIVar17,exception)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (0 < (int)image->rows) {\n              sVar29 = image->columns;\n              local_78 = (char *)0x0;\n              do {\n                pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception);\n                if (pQVar14 == (Quantum *)0x0) break;\n                sVar29 = image->columns;\n                if (0 < (int)sVar29) {\n                  pPVar6 = image->colormap;\n                  local_d4 = 0;\n                  pPVar5 = image->channel_map;\n                  sVar25 = image->number_channels;\n                  PVar7 = pPVar5[5].traits;\nLAB_002618c8:\n                  pPVar23 = pPVar6;\n                  if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }\n                  dVar2 = pPVar23->red;\n                  if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  dVar2 = -1.0;\n                  goto LAB_00261adb;\n                }\nLAB_00261b09:\n                local_78 = (char *)((int)local_78 + 1);\n              } while ((int)local_78 < (int)image->rows);\n            }" if (parenthesized_expression "(0 < (int)image->rows)" ( (binary_expression "0 < (int)image->rows" number_literal < (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier))) )) (compound_statement "{\n              sVar29 = image->columns;\n              local_78 = (char *)0x0;\n              do {\n                pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception);\n                if (pQVar14 == (Quantum *)0x0) break;\n                sVar29 = image->columns;\n                if (0 < (int)sVar29) {\n                  pPVar6 = image->colormap;\n                  local_d4 = 0;\n                  pPVar5 = image->channel_map;\n                  sVar25 = image->number_channels;\n                  PVar7 = pPVar5[5].traits;\nLAB_002618c8:\n                  pPVar23 = pPVar6;\n                  if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }\n                  dVar2 = pPVar23->red;\n                  if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  dVar2 = -1.0;\n                  goto LAB_00261adb;\n                }\nLAB_00261b09:\n                local_78 = (char *)((int)local_78 + 1);\n              } while ((int)local_78 < (int)image->rows);\n            }" { (expression_statement "sVar29 = image->columns;" (assignment_expression "sVar29 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (expression_statement "local_78 = (char *)0x0;" (assignment_expression "local_78 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception);\n                if (pQVar14 == (Quantum *)0x0) break;\n                sVar29 = image->columns;\n                if (0 < (int)sVar29) {\n                  pPVar6 = image->colormap;\n                  local_d4 = 0;\n                  pPVar5 = image->channel_map;\n                  sVar25 = image->number_channels;\n                  PVar7 = pPVar5[5].traits;\nLAB_002618c8:\n                  pPVar23 = pPVar6;\n                  if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }\n                  dVar2 = pPVar23->red;\n                  if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  dVar2 = -1.0;\n                  goto LAB_00261adb;\n                }\nLAB_00261b09:\n                local_78 = (char *)((int)local_78 + 1);\n              } while ((int)local_78 < (int)image->rows);" do (compound_statement "{\n                pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception);\n                if (pQVar14 == (Quantum *)0x0) break;\n                sVar29 = image->columns;\n                if (0 < (int)sVar29) {\n                  pPVar6 = image->colormap;\n                  local_d4 = 0;\n                  pPVar5 = image->channel_map;\n                  sVar25 = image->number_channels;\n                  PVar7 = pPVar5[5].traits;\nLAB_002618c8:\n                  pPVar23 = pPVar6;\n                  if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }\n                  dVar2 = pPVar23->red;\n                  if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  dVar2 = -1.0;\n                  goto LAB_00261adb;\n                }\nLAB_00261b09:\n                local_78 = (char *)((int)local_78 + 1);\n              }" { (expression_statement "pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception);" (assignment_expression "pQVar14 = GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception)" identifier = (call_expression "GetAuthenticPixels(image,0,(ssize_t)local_78,sVar29,1,exception)" identifier (argument_list "(image,0,(ssize_t)local_78,sVar29,1,exception)" ( identifier , number_literal , (cast_expression "(ssize_t)local_78" ( (type_descriptor "ssize_t" primitive_type) ) identifier) , identifier , number_literal , identifier )))) ;) (if_statement "if (pQVar14 == (Quantum *)0x0) break;" if (parenthesized_expression "(pQVar14 == (Quantum *)0x0)" ( (binary_expression "pQVar14 == (Quantum *)0x0" identifier == (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "sVar29 = image->columns;" (assignment_expression "sVar29 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (if_statement "if (0 < (int)sVar29) {\n                  pPVar6 = image->colormap;\n                  local_d4 = 0;\n                  pPVar5 = image->channel_map;\n                  sVar25 = image->number_channels;\n                  PVar7 = pPVar5[5].traits;\nLAB_002618c8:\n                  pPVar23 = pPVar6;\n                  if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }\n                  dVar2 = pPVar23->red;\n                  if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  dVar2 = -1.0;\n                  goto LAB_00261adb;\n                }" if (parenthesized_expression "(0 < (int)sVar29)" ( (binary_expression "0 < (int)sVar29" number_literal < (cast_expression "(int)sVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  pPVar6 = image->colormap;\n                  local_d4 = 0;\n                  pPVar5 = image->channel_map;\n                  sVar25 = image->number_channels;\n                  PVar7 = pPVar5[5].traits;\nLAB_002618c8:\n                  pPVar23 = pPVar6;\n                  if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }\n                  dVar2 = pPVar23->red;\n                  if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  dVar2 = -1.0;\n                  goto LAB_00261adb;\n                }" { (expression_statement "pPVar6 = image->colormap;" (assignment_expression "pPVar6 = image->colormap" identifier = (field_expression "image->colormap" identifier -> field_identifier)) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (expression_statement "pPVar5 = image->channel_map;" (assignment_expression "pPVar5 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "sVar25 = image->number_channels;" (assignment_expression "sVar25 = image->number_channels" identifier = (field_expression "image->number_channels" identifier -> field_identifier)) ;) (expression_statement "PVar7 = pPVar5[5].traits;" (assignment_expression "PVar7 = pPVar5[5].traits" identifier = (field_expression "pPVar5[5].traits" (subscript_expression "pPVar5[5]" identifier [ number_literal ]) . field_identifier)) ;) (labeled_statement "LAB_002618c8:\n                  pPVar23 = pPVar6;" statement_identifier : (expression_statement "pPVar23 = pPVar6;" (assignment_expression "pPVar23 = pPVar6" identifier = identifier) ;)) (if_statement "if (PVar7 != UndefinedPixelTrait) {\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }" if (parenthesized_expression "(PVar7 != UndefinedPixelTrait)" ( (binary_expression "PVar7 != UndefinedPixelTrait" identifier != identifier) )) (compound_statement "{\n                    pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);\n                  }" { (expression_statement "pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset]);" (assignment_expression "pPVar23 = pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset])" identifier = (binary_expression "pPVar6 + (int)ROUND(pQVar14[pPVar5[5].offset])" identifier + (cast_expression "(int)ROUND(pQVar14[pPVar5[5].offset])" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(pQVar14[pPVar5[5].offset])" identifier (argument_list "(pQVar14[pPVar5[5].offset])" ( (subscript_expression "pQVar14[pPVar5[5].offset]" identifier [ (field_expression "pPVar5[5].offset" (subscript_expression "pPVar5[5]" identifier [ number_literal ]) . field_identifier) ]) )))))) ;) })) (expression_statement "dVar2 = pPVar23->red;" (assignment_expression "dVar2 = pPVar23->red" identifier = (field_expression "pPVar23->red" identifier -> field_identifier)) ;) (if_statement "if (NAN(dVar2)) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }" if (parenthesized_expression "(NAN(dVar2))" ( (call_expression "NAN(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))) )) (compound_statement "{\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "pauVar22 = PalmPalette;" (assignment_expression "pauVar22 = PalmPalette" identifier = identifier) ;) (do_statement "do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);" do (compound_statement "{\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    }" { (if_statement "if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }" if (parenthesized_expression "((*pauVar22)[0] == '\0')" ( (binary_expression "(*pauVar22)[0] == '\0'" (subscript_expression "(*pauVar22)[0]" (parenthesized_expression "(*pauVar22)" ( (pointer_expression "*pauVar22" * identifier) )) [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }" { (expression_statement "uVar10 = '\0';" (assignment_expression "uVar10 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" if (parenthesized_expression "(0.0 < pPVar23->green)" ( (binary_expression "0.0 < pPVar23->green" number_literal < (field_expression "pPVar23->green" identifier -> field_identifier)) )) (compound_statement "{\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" { (expression_statement "dVar2 = pPVar23->green / (double)DAT_002e814c;" (assignment_expression "dVar2 = pPVar23->green / (double)DAT_002e814c" identifier = (binary_expression "pPVar23->green / (double)DAT_002e814c" (field_expression "pPVar23->green" identifier -> field_identifier) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" { (expression_statement "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "uchar" 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)) )))))) ;) })) })) (if_statement "if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }" if (parenthesized_expression "((*pauVar22)[1] == uVar10)" ( (binary_expression "(*pauVar22)[1] == uVar10" (subscript_expression "(*pauVar22)[1]" (parenthesized_expression "(*pauVar22)" ( (pointer_expression "*pauVar22" * identifier) )) [ number_literal ]) == identifier) )) (compound_statement "{\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }" { (expression_statement "uVar10 = '\0';" (assignment_expression "uVar10 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }" if (parenthesized_expression "(0.0 < pPVar23->blue)" ( (binary_expression "0.0 < pPVar23->blue" number_literal < (field_expression "pPVar23->blue" identifier -> field_identifier)) )) (compound_statement "{\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }" { (expression_statement "dVar2 = pPVar23->blue / (double)DAT_002e814c;" (assignment_expression "dVar2 = pPVar23->blue / (double)DAT_002e814c" identifier = (binary_expression "pPVar23->blue / (double)DAT_002e814c" (field_expression "pPVar23->blue" identifier -> field_identifier) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }" { (expression_statement "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "uchar" 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)) )))))) ;) })) })) (if_statement "if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;" if (parenthesized_expression "((*pauVar22)[2] == uVar10)" ( (binary_expression "(*pauVar22)[2] == uVar10" (subscript_expression "(*pauVar22)[2]" (parenthesized_expression "(*pauVar22)" ( (pointer_expression "*pauVar22" * identifier) )) [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00261ad3;" goto statement_identifier ;)) })) })) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "pauVar22 = pauVar22 + 1;" (assignment_expression "pauVar22 = pauVar22 + 1" identifier = (binary_expression "pauVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 != 0x100)" ( (binary_expression "iVar24 != 0x100" identifier != number_literal) )) ;) }) (else_clause "else if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }" else (if_statement "if (dVar2 <= 0.0) {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }\n                  else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }" if (parenthesized_expression "(dVar2 <= 0.0)" ( (binary_expression "dVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "pauVar22 = PalmPalette;" (assignment_expression "pauVar22 = PalmPalette" identifier = identifier) ;) (do_statement "do {\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);" do (compound_statement "{\n                      if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    }" { (if_statement "if ((*pauVar22)[0] == '\0') {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }" if (parenthesized_expression "((*pauVar22)[0] == '\0')" ( (binary_expression "(*pauVar22)[0] == '\0'" (subscript_expression "(*pauVar22)[0]" (parenthesized_expression "(*pauVar22)" ( (pointer_expression "*pauVar22" * identifier) )) [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }" { (expression_statement "uVar10 = '\0';" (assignment_expression "uVar10 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < pPVar23->green) {\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" if (parenthesized_expression "(0.0 < pPVar23->green)" ( (binary_expression "0.0 < pPVar23->green" number_literal < (field_expression "pPVar23->green" identifier -> field_identifier)) )) (compound_statement "{\n                          dVar2 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" { (expression_statement "dVar2 = pPVar23->green / (double)DAT_002e814c;" (assignment_expression "dVar2 = pPVar23->green / (double)DAT_002e814c" identifier = (binary_expression "pPVar23->green / (double)DAT_002e814c" (field_expression "pPVar23->green" identifier -> field_identifier) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" { (expression_statement "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "uchar" 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)) )))))) ;) })) })) (if_statement "if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }" if (parenthesized_expression "((*pauVar22)[1] == uVar10)" ( (binary_expression "(*pauVar22)[1] == uVar10" (subscript_expression "(*pauVar22)[1]" (parenthesized_expression "(*pauVar22)" ( (pointer_expression "*pauVar22" * identifier) )) [ number_literal ]) == identifier) )) (compound_statement "{\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }" { (expression_statement "uVar10 = '\0';" (assignment_expression "uVar10 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < pPVar23->blue) {\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }" if (parenthesized_expression "(0.0 < pPVar23->blue)" ( (binary_expression "0.0 < pPVar23->blue" number_literal < (field_expression "pPVar23->blue" identifier -> field_identifier)) )) (compound_statement "{\n                            dVar2 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }\n                          }" { (expression_statement "dVar2 = pPVar23->blue / (double)DAT_002e814c;" (assignment_expression "dVar2 = pPVar23->blue / (double)DAT_002e814c" identifier = (binary_expression "pPVar23->blue / (double)DAT_002e814c" (field_expression "pPVar23->blue" identifier -> field_identifier) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                              uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                            }" { (expression_statement "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "uchar" 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)) )))))) ;) })) })) (if_statement "if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;" if (parenthesized_expression "((*pauVar22)[2] == uVar10)" ( (binary_expression "(*pauVar22)[2] == uVar10" (subscript_expression "(*pauVar22)[2]" (parenthesized_expression "(*pauVar22)" ( (pointer_expression "*pauVar22" * identifier) )) [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00261ad3;" goto statement_identifier ;)) })) })) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "pauVar22 = pauVar22 + 1;" (assignment_expression "pauVar22 = pauVar22 + 1" identifier = (binary_expression "pauVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 != 0x100)" ( (binary_expression "iVar24 != 0x100" identifier != number_literal) )) ;) }) (else_clause "else {\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }" else (compound_statement "{\n                    iVar24 = 0;\n                    pauVar22 = PalmPalette;\n                    do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);\n                  }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "pauVar22 = PalmPalette;" (assignment_expression "pauVar22 = PalmPalette" identifier = identifier) ;) (do_statement "do {\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    } while (iVar24 != 0x100);" do (compound_statement "{\n                      uVar10 = 0xff;\n                      if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }\n                      if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }\n                      iVar24 = iVar24 + 1;\n                      pauVar22 = pauVar22 + 1;\n                    }" { (expression_statement "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }" if (parenthesized_expression "(dVar2 / (double)DAT_002e814c < (double)DAT_002e8150)" ( (binary_expression "dVar2 / (double)DAT_002e814c < (double)DAT_002e8150" (binary_expression "dVar2 / (double)DAT_002e814c" identifier / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier)) < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                        uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);\n                      }" { (expression_statement "uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8);" (assignment_expression "uVar10 = (uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8)" identifier = (cast_expression "(uchar)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8)" ( (type_descriptor "uchar" type_identifier) ) (cast_expression "(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8)" identifier (argument_list "(dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8)" ( (binary_expression "dVar2 / (double)DAT_002e814c +\n                                                     (double)DAT_002df2b8" (binary_expression "dVar2 / (double)DAT_002e814c" identifier / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier)) + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) (if_statement "if ((*pauVar22)[0] == uVar10) {\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }" if (parenthesized_expression "((*pauVar22)[0] == uVar10)" ( (binary_expression "(*pauVar22)[0] == uVar10" (subscript_expression "(*pauVar22)[0]" (parenthesized_expression "(*pauVar22)" ( (pointer_expression "*pauVar22" * identifier) )) [ number_literal ]) == identifier) )) (compound_statement "{\n                        uVar10 = '\0';\n                        if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }\n                      }" { (expression_statement "uVar10 = '\0';" (assignment_expression "uVar10 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < pPVar23->green) {\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }" if (parenthesized_expression "(0.0 < pPVar23->green)" ( (binary_expression "0.0 < pPVar23->green" number_literal < (field_expression "pPVar23->green" identifier -> field_identifier)) )) (compound_statement "{\n                          dVar3 = pPVar23->green / (double)DAT_002e814c;\n                          uVar10 = 0xff;\n                          if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }\n                        }" { (expression_statement "dVar3 = pPVar23->green / (double)DAT_002e814c;" (assignment_expression "dVar3 = pPVar23->green / (double)DAT_002e814c" identifier = (binary_expression "pPVar23->green / (double)DAT_002e814c" (field_expression "pPVar23->green" identifier -> field_identifier) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar3 < (double)DAT_002e8150) {\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }" if (parenthesized_expression "(dVar3 < (double)DAT_002e8150)" ( (binary_expression "dVar3 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                            uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                          }" { (expression_statement "uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);" (assignment_expression "uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8)" identifier = (cast_expression "(uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8)" ( (type_descriptor "uchar" 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)) )))))) ;) })) })) (if_statement "if ((*pauVar22)[1] == uVar10) {\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }" if (parenthesized_expression "((*pauVar22)[1] == uVar10)" ( (binary_expression "(*pauVar22)[1] == uVar10" (subscript_expression "(*pauVar22)[1]" (parenthesized_expression "(*pauVar22)" ( (pointer_expression "*pauVar22" * identifier) )) [ number_literal ]) == identifier) )) (compound_statement "{\n                          uVar10 = '\0';\n                          if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }\n                          if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;\n                        }" { (expression_statement "uVar10 = '\0';" (assignment_expression "uVar10 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < pPVar23->blue) {\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }" if (parenthesized_expression "(0.0 < pPVar23->blue)" ( (binary_expression "0.0 < pPVar23->blue" number_literal < (field_expression "pPVar23->blue" identifier -> field_identifier)) )) (compound_statement "{\n                            dVar3 = pPVar23->blue / (double)DAT_002e814c;\n                            uVar10 = 0xff;\n                            if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }\n                          }" { (expression_statement "dVar3 = pPVar23->blue / (double)DAT_002e814c;" (assignment_expression "dVar3 = pPVar23->blue / (double)DAT_002e814c" identifier = (binary_expression "pPVar23->blue / (double)DAT_002e814c" (field_expression "pPVar23->blue" identifier -> field_identifier) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar3 < (double)DAT_002e8150) {\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }" if (parenthesized_expression "(dVar3 < (double)DAT_002e8150)" ( (binary_expression "dVar3 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                              uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);\n                            }" { (expression_statement "uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8);" (assignment_expression "uVar10 = (uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8)" identifier = (cast_expression "(uchar)(short)ROUND(dVar3 + (double)DAT_002df2b8)" ( (type_descriptor "uchar" 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)) )))))) ;) })) })) (if_statement "if ((*pauVar22)[2] == uVar10) goto LAB_00261ad3;" if (parenthesized_expression "((*pauVar22)[2] == uVar10)" ( (binary_expression "(*pauVar22)[2] == uVar10" (subscript_expression "(*pauVar22)[2]" (parenthesized_expression "(*pauVar22)" ( (pointer_expression "*pauVar22" * identifier) )) [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00261ad3;" goto statement_identifier ;)) })) })) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "pauVar22 = pauVar22 + 1;" (assignment_expression "pauVar22 = pauVar22 + 1" identifier = (binary_expression "pauVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 != 0x100)" ( (binary_expression "iVar24 != 0x100" identifier != number_literal) )) ;) }))))) (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" identifier = number_literal) ;) (goto_statement "goto LAB_00261adb;" goto statement_identifier ;) })) (labeled_statement "LAB_00261b09:\n                local_78 = (char *)((int)local_78 + 1);" statement_identifier : (expression_statement "local_78 = (char *)((int)local_78 + 1);" (assignment_expression "local_78 = (char *)((int)local_78 + 1)" identifier = (cast_expression "(char *)((int)local_78 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_78 + 1)" ( (binary_expression "(int)local_78 + 1" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) }) while (parenthesized_expression "((int)local_78 < (int)image->rows)" ( (binary_expression "(int)local_78 < (int)image->rows" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier))) )) ;) })) (expression_statement "DestroyImage(pIVar17);" (call_expression "DestroyImage(pIVar17)" identifier (argument_list "(pIVar17)" ( identifier ))) ;) (expression_statement "local_64 = 0x10;" (assignment_expression "local_64 = 0x10" identifier = number_literal) ;) }) (else_clause "else {\n            MVar11 = IdentifyPaletteImage(image,exception);\n            quantize_info->dither_method = (MVar11 == MagickFalse) + NoDitherMethod;\n            quantize_info->number_colors = image->colors;\n            QuantizeImage(quantize_info,image,exception);\n            WriteBlobMSBShort(image,(ushort)image->colors);\n            if (image->colors == 0) {\n              local_64 = 0x12;\n            }\n            else {\n              iVar24 = 0;\n              local_d4 = 0;\n              do {\n                WriteBlobByte(image,(uchar)local_d4);\n                dVar2 = *(double *)((int)&image->colormap->red + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->green + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                iVar24 = iVar24 + 0x50;\n                WriteBlobByte(image,uVar10);\n                local_d4 = local_d4 + 1;\n              } while (local_d4 < image->colors);\n              local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12);\n            }\n          }" else (compound_statement "{\n            MVar11 = IdentifyPaletteImage(image,exception);\n            quantize_info->dither_method = (MVar11 == MagickFalse) + NoDitherMethod;\n            quantize_info->number_colors = image->colors;\n            QuantizeImage(quantize_info,image,exception);\n            WriteBlobMSBShort(image,(ushort)image->colors);\n            if (image->colors == 0) {\n              local_64 = 0x12;\n            }\n            else {\n              iVar24 = 0;\n              local_d4 = 0;\n              do {\n                WriteBlobByte(image,(uchar)local_d4);\n                dVar2 = *(double *)((int)&image->colormap->red + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->green + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                iVar24 = iVar24 + 0x50;\n                WriteBlobByte(image,uVar10);\n                local_d4 = local_d4 + 1;\n              } while (local_d4 < image->colors);\n              local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12);\n            }\n          }" { (expression_statement "MVar11 = IdentifyPaletteImage(image,exception);" (assignment_expression "MVar11 = IdentifyPaletteImage(image,exception)" identifier = (call_expression "IdentifyPaletteImage(image,exception)" identifier (argument_list "(image,exception)" ( identifier , identifier )))) ;) (expression_statement "quantize_info->dither_method = (MVar11 == MagickFalse) + NoDitherMethod;" (assignment_expression "quantize_info->dither_method = (MVar11 == MagickFalse) + NoDitherMethod" (field_expression "quantize_info->dither_method" identifier -> field_identifier) = (binary_expression "(MVar11 == MagickFalse) + NoDitherMethod" (parenthesized_expression "(MVar11 == MagickFalse)" ( (binary_expression "MVar11 == MagickFalse" identifier == identifier) )) + identifier)) ;) (expression_statement "quantize_info->number_colors = image->colors;" (assignment_expression "quantize_info->number_colors = image->colors" (field_expression "quantize_info->number_colors" identifier -> field_identifier) = (field_expression "image->colors" identifier -> field_identifier)) ;) (expression_statement "QuantizeImage(quantize_info,image,exception);" (call_expression "QuantizeImage(quantize_info,image,exception)" identifier (argument_list "(quantize_info,image,exception)" ( identifier , identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(image,(ushort)image->colors);" (call_expression "WriteBlobMSBShort(image,(ushort)image->colors)" identifier (argument_list "(image,(ushort)image->colors)" ( identifier , (cast_expression "(ushort)image->colors" ( (type_descriptor "ushort" type_identifier) ) (field_expression "image->colors" identifier -> field_identifier)) ))) ;) (if_statement "if (image->colors == 0) {\n              local_64 = 0x12;\n            }\n            else {\n              iVar24 = 0;\n              local_d4 = 0;\n              do {\n                WriteBlobByte(image,(uchar)local_d4);\n                dVar2 = *(double *)((int)&image->colormap->red + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->green + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                iVar24 = iVar24 + 0x50;\n                WriteBlobByte(image,uVar10);\n                local_d4 = local_d4 + 1;\n              } while (local_d4 < image->colors);\n              local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12);\n            }" if (parenthesized_expression "(image->colors == 0)" ( (binary_expression "image->colors == 0" (field_expression "image->colors" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n              local_64 = 0x12;\n            }" { (expression_statement "local_64 = 0x12;" (assignment_expression "local_64 = 0x12" identifier = number_literal) ;) }) (else_clause "else {\n              iVar24 = 0;\n              local_d4 = 0;\n              do {\n                WriteBlobByte(image,(uchar)local_d4);\n                dVar2 = *(double *)((int)&image->colormap->red + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->green + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                iVar24 = iVar24 + 0x50;\n                WriteBlobByte(image,uVar10);\n                local_d4 = local_d4 + 1;\n              } while (local_d4 < image->colors);\n              local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12);\n            }" else (compound_statement "{\n              iVar24 = 0;\n              local_d4 = 0;\n              do {\n                WriteBlobByte(image,(uchar)local_d4);\n                dVar2 = *(double *)((int)&image->colormap->red + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->green + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                iVar24 = iVar24 + 0x50;\n                WriteBlobByte(image,uVar10);\n                local_d4 = local_d4 + 1;\n              } while (local_d4 < image->colors);\n              local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12);\n            }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (do_statement "do {\n                WriteBlobByte(image,(uchar)local_d4);\n                dVar2 = *(double *)((int)&image->colormap->red + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->green + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                iVar24 = iVar24 + 0x50;\n                WriteBlobByte(image,uVar10);\n                local_d4 = local_d4 + 1;\n              } while (local_d4 < image->colors);" do (compound_statement "{\n                WriteBlobByte(image,(uchar)local_d4);\n                dVar2 = *(double *)((int)&image->colormap->red + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->green + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                WriteBlobByte(image,uVar10);\n                dVar2 = *(double *)((int)&image->colormap->blue + iVar24);\n                uVar10 = '\0';\n                if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }\n                }\n                iVar24 = iVar24 + 0x50;\n                WriteBlobByte(image,uVar10);\n                local_d4 = local_d4 + 1;\n              }" { (expression_statement "WriteBlobByte(image,(uchar)local_d4);" (call_expression "WriteBlobByte(image,(uchar)local_d4)" identifier (argument_list "(image,(uchar)local_d4)" ( identifier , (cast_expression "(uchar)local_d4" ( (type_descriptor "uchar" type_identifier) ) identifier) ))) ;) (expression_statement "dVar2 = *(double *)((int)&image->colormap->red + iVar24);" (assignment_expression "dVar2 = *(double *)((int)&image->colormap->red + iVar24)" identifier = (pointer_expression "*(double *)((int)&image->colormap->red + iVar24)" * (cast_expression "(double *)((int)&image->colormap->red + iVar24)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&image->colormap->red + iVar24)" ( (binary_expression "(int)&image->colormap->red + iVar24" (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 = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(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                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(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))) ;) (expression_statement "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }" { (expression_statement "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "uchar" 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 "WriteBlobByte(image,uVar10);" (call_expression "WriteBlobByte(image,uVar10)" identifier (argument_list "(image,uVar10)" ( identifier , identifier ))) ;) (expression_statement "dVar2 = *(double *)((int)&image->colormap->green + iVar24);" (assignment_expression "dVar2 = *(double *)((int)&image->colormap->green + iVar24)" identifier = (pointer_expression "*(double *)((int)&image->colormap->green + iVar24)" * (cast_expression "(double *)((int)&image->colormap->green + iVar24)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&image->colormap->green + iVar24)" ( (binary_expression "(int)&image->colormap->green + iVar24" (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 = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(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                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(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))) ;) (expression_statement "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }" { (expression_statement "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "uchar" 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 "WriteBlobByte(image,uVar10);" (call_expression "WriteBlobByte(image,uVar10)" identifier (argument_list "(image,uVar10)" ( identifier , identifier ))) ;) (expression_statement "dVar2 = *(double *)((int)&image->colormap->blue + iVar24);" (assignment_expression "dVar2 = *(double *)((int)&image->colormap->blue + iVar24)" identifier = (pointer_expression "*(double *)((int)&image->colormap->blue + iVar24)" * (cast_expression "(double *)((int)&image->colormap->blue + iVar24)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&image->colormap->blue + iVar24)" ( (binary_expression "(int)&image->colormap->blue + iVar24" (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 = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < dVar2) {\n                  dVar2 = dVar2 / (double)DAT_002e814c;\n                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(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                  uVar10 = 0xff;\n                  if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(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))) ;) (expression_statement "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                    uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                  }" { (expression_statement "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(uchar)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "uchar" 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 "iVar24 = iVar24 + 0x50;" (assignment_expression "iVar24 = iVar24 + 0x50" identifier = (binary_expression "iVar24 + 0x50" identifier + number_literal)) ;) (expression_statement "WriteBlobByte(image,uVar10);" (call_expression "WriteBlobByte(image,uVar10)" identifier (argument_list "(image,uVar10)" ( identifier , identifier ))) ;) (expression_statement "local_d4 = local_d4 + 1;" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_d4 < image->colors)" ( (binary_expression "local_d4 < image->colors" identifier < (field_expression "image->colors" identifier -> field_identifier)) )) ;) (expression_statement "local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12);" (assignment_expression "local_64 = (ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12)" identifier = (cast_expression "(ulonglong)CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "CONCAT14(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12)" identifier (argument_list "(0xffffffef < local_d4 * 4 + 2,local_d4 * 4 + 0x12)" ( (binary_expression "0xffffffef < local_d4 * 4 + 2" number_literal < (binary_expression "local_d4 * 4 + 2" (binary_expression "local_d4 * 4" identifier * number_literal) + number_literal)) , (binary_expression "local_d4 * 4 + 0x12" (binary_expression "local_d4 * 4" identifier * number_literal) + number_literal) ))))) ;) }))) }))) })) }))) (if_statement "if ((short)local_48 < 0) {\n        WriteBlobMSBShort(image,0);\n      }" if (parenthesized_expression "((short)local_48 < 0)" ( (binary_expression "(short)local_48 < 0" (cast_expression "(short)local_48" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) < number_literal) )) (compound_statement "{\n        WriteBlobMSBShort(image,0);\n      }" { (expression_statement "WriteBlobMSBShort(image,0);" (call_expression "WriteBlobMSBShort(image,0)" identifier (argument_list "(image,0)" ( identifier , number_literal ))) ;) })) (expression_statement "local_7c = (char *)0x0;" (assignment_expression "local_7c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pIVar17 = image;" (assignment_expression "pIVar17 = image" identifier = identifier) ;) (if_statement "if ((image_info->compression == FaxCompression) &&\n         (local_7c = (char *)AcquireQuantumMemory(sVar13 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(quantize_info);\n        ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x376,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n        p_Var8 = (_Image *)image_info->adjoin;\n        while (pIVar9 = image, p_Var8 != (_Image *)0x0) {\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }\nLAB_0026128c:\n        CloseBlob(pIVar17);\n        MVar11 = MagickFalse;\n        break;\n      }" if (parenthesized_expression "((image_info->compression == FaxCompression) &&\n         (local_7c = (char *)AcquireQuantumMemory(sVar13 + 0x100,1), local_7c == (char *)0x0))" ( (binary_expression "(image_info->compression == FaxCompression) &&\n         (local_7c = (char *)AcquireQuantumMemory(sVar13 + 0x100,1), local_7c == (char *)0x0)" (parenthesized_expression "(image_info->compression == FaxCompression)" ( (binary_expression "image_info->compression == FaxCompression" (field_expression "image_info->compression" identifier -> field_identifier) == identifier) )) && (parenthesized_expression "(local_7c = (char *)AcquireQuantumMemory(sVar13 + 0x100,1), local_7c == (char *)0x0)" ( (comma_expression "local_7c = (char *)AcquireQuantumMemory(sVar13 + 0x100,1), local_7c == (char *)0x0" (assignment_expression "local_7c = (char *)AcquireQuantumMemory(sVar13 + 0x100,1)" identifier = (cast_expression "(char *)AcquireQuantumMemory(sVar13 + 0x100,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(sVar13 + 0x100,1)" identifier (argument_list "(sVar13 + 0x100,1)" ( (binary_expression "sVar13 + 0x100" identifier + number_literal) , number_literal ))))) , (binary_expression "local_7c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        DestroyQuantizeInfo(quantize_info);\n        ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x376,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n        p_Var8 = (_Image *)image_info->adjoin;\n        while (pIVar9 = image, p_Var8 != (_Image *)0x0) {\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }\nLAB_0026128c:\n        CloseBlob(pIVar17);\n        MVar11 = MagickFalse;\n        break;\n      }" { (expression_statement "DestroyQuantizeInfo(quantize_info);" (call_expression "DestroyQuantizeInfo(quantize_info)" identifier (argument_list "(quantize_info)" ( identifier ))) ;) (expression_statement "ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x376,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);" (call_expression "ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x376,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename)" identifier (argument_list "(exception,"coders/palm.c","WritePALMImage",0x376,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename)" ( identifier , (string_literal ""coders/palm.c"" " string_content ") , (string_literal ""WritePALMImage"" " 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_Var8 = (_Image *)image_info->adjoin;" (assignment_expression "p_Var8 = (_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))) ;) (while_statement "while (pIVar9 = image, p_Var8 != (_Image *)0x0) {\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }" while (parenthesized_expression "(pIVar9 = image, p_Var8 != (_Image *)0x0)" ( (comma_expression "pIVar9 = image, p_Var8 != (_Image *)0x0" (assignment_expression "pIVar9 = image" identifier = identifier) , (binary_expression "p_Var8 != (_Image *)0x0" identifier != (cast_expression "(_Image *)0x0" ( (type_descriptor "_Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }" { (expression_statement "p_Var8 = pIVar9->previous;" (assignment_expression "p_Var8 = pIVar9->previous" identifier = (field_expression "pIVar9->previous" identifier -> field_identifier)) ;) (expression_statement "image = p_Var8;" (assignment_expression "image = p_Var8" identifier = identifier) ;) (expression_statement "pIVar17 = pIVar9;" (assignment_expression "pIVar17 = pIVar9" identifier = identifier) ;) })) (labeled_statement "LAB_0026128c:\n        CloseBlob(pIVar17);" statement_identifier : (expression_statement "CloseBlob(pIVar17);" (call_expression "CloseBlob(pIVar17)" identifier (argument_list "(pIVar17)" ( identifier ))) ;)) (expression_statement "MVar11 = MagickFalse;" (assignment_expression "MVar11 = MagickFalse" identifier = identifier) ;) (break_statement "break;" break ;) })) (expression_statement "__s = (char *)AcquireQuantumMemory(sVar13 + 0x100,1);" (assignment_expression "__s = (char *)AcquireQuantumMemory(sVar13 + 0x100,1)" identifier = (cast_expression "(char *)AcquireQuantumMemory(sVar13 + 0x100,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(sVar13 + 0x100,1)" identifier (argument_list "(sVar13 + 0x100,1)" ( (binary_expression "sVar13 + 0x100" identifier + number_literal) , number_literal ))))) ;) (if_statement "if (__s == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(quantize_info);\n        ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x380,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n        p_Var8 = (_Image *)image_info->adjoin;\n        while (pIVar9 = image, p_Var8 != (_Image *)0x0) {\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }\n        goto LAB_0026128c;\n      }" if (parenthesized_expression "(__s == (char *)0x0)" ( (binary_expression "__s == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(quantize_info);\n        ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x380,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);\n        p_Var8 = (_Image *)image_info->adjoin;\n        while (pIVar9 = image, p_Var8 != (_Image *)0x0) {\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }\n        goto LAB_0026128c;\n      }" { (if_statement "if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }" if (parenthesized_expression "(local_7c != (char *)0x0)" ( (binary_expression "local_7c != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          RelinquishMagickMemory(local_7c);\n        }" { (expression_statement "RelinquishMagickMemory(local_7c);" (call_expression "RelinquishMagickMemory(local_7c)" identifier (argument_list "(local_7c)" ( identifier ))) ;) })) (expression_statement "DestroyQuantizeInfo(quantize_info);" (call_expression "DestroyQuantizeInfo(quantize_info)" identifier (argument_list "(quantize_info)" ( identifier ))) ;) (expression_statement "ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x380,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename);" (call_expression "ThrowMagickException\n                  (exception,"coders/palm.c","WritePALMImage",0x380,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename)" identifier (argument_list "(exception,"coders/palm.c","WritePALMImage",0x380,ErrorException,\n                   "MemoryAllocationFailed","`%s\'",0x6e,image->filename)" ( identifier , (string_literal ""coders/palm.c"" " string_content ") , (string_literal ""WritePALMImage"" " 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_Var8 = (_Image *)image_info->adjoin;" (assignment_expression "p_Var8 = (_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))) ;) (while_statement "while (pIVar9 = image, p_Var8 != (_Image *)0x0) {\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }" while (parenthesized_expression "(pIVar9 = image, p_Var8 != (_Image *)0x0)" ( (comma_expression "pIVar9 = image, p_Var8 != (_Image *)0x0" (assignment_expression "pIVar9 = image" identifier = identifier) , (binary_expression "p_Var8 != (_Image *)0x0" identifier != (cast_expression "(_Image *)0x0" ( (type_descriptor "_Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          p_Var8 = pIVar9->previous;\n          image = p_Var8;\n          pIVar17 = pIVar9;\n        }" { (expression_statement "p_Var8 = pIVar9->previous;" (assignment_expression "p_Var8 = pIVar9->previous" identifier = (field_expression "pIVar9->previous" identifier -> field_identifier)) ;) (expression_statement "image = p_Var8;" (assignment_expression "image = p_Var8" identifier = identifier) ;) (expression_statement "pIVar17 = pIVar9;" (assignment_expression "pIVar17 = pIVar9" identifier = identifier) ;) })) (goto_statement "goto LAB_0026128c;" goto statement_identifier ;) })) (if_statement "if (0 < (int)image->rows) {\n        iVar24 = 0;\n        do {\n          memset(__s,0,sVar13);\n          pQVar14 = GetVirtualPixels(image,0,iVar24,image->columns,1,exception);\n          if (pQVar14 == (Quantum *)0x0) break;\n          local_ac = image->columns;\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (PixelChannelMap *)0x0;\n            do {\n              pPVar5 = image->channel_map;\n              uVar18 = (((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f) / 0xffff;\n              if ((pPVar5[4].traits != UndefinedPixelTrait) && (pQVar14[pPVar5[4].offset] == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = pQVar14[pPVar5->offset];\n                local_8c = pQVar14[pPVar5[2].offset];\n                local_84 = pQVar14[pPVar5[1].offset];\n              }\n              __s[(int)local_b8 * 2] = (char)(uVar18 >> 8);\n              __s[(int)local_b8 * 2 + 1] = (char)uVar18;\n              local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n              pQVar14 = pQVar14 + image->number_channels;\n            } while ((int)local_b8 < (int)image->columns);\n            CVar16 = image_info->compression;\n            if (CVar16 != RLECompression) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)sVar13) {\n              iVar21 = 0;\n              do {\n                uVar10 = __s[iVar21];\n                iVar28 = iVar21 + 1;\n                if (uVar10 == __s[iVar21 + 1]) {\n                  if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }\n                  uVar18 = 1;\n                  do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);\n                }\n                else {\n                  uVar18 = 1;\n                }\n                WriteBlobByte(image,(uchar)uVar18);\n                WriteBlobByte(image,uVar10);\n                iVar21 = iVar28;\n              } while (iVar28 < (int)sVar13);\n            }\n          }\n          else {\n            uVar18 = (uint)(byte)(8 - local_45);\n            local_b8 = (PixelChannelMap *)__s;\n            if ((int)local_ac < 1) {\n              cVar26 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              do {\n                while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                local_ac = image->columns;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n            }\n            else {\n              local_b8 = image->channel_map;\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              local_9c = __s;\n              do {\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n              local_b8 = (PixelChannelMap *)local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *(char *)local_b8 = cVar26;\n            }\nLAB_0026097b:\n            CVar16 = image_info->compression;\n            if (CVar16 == RLECompression) goto LAB_00260d43;\nLAB_0026098a:\n            if (CVar16 == FaxCompression) {\n              if (0 < (int)sVar13) {\n                pcVar20 = __s;\n                sVar29 = sVar13;\n                pcVar1 = local_7c;\n                do {\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);\n              }\n              memcpy(local_7c,__s,sVar13);\n            }\n            else {\n              WriteBlob(image,sVar13,__s);\n            }\n          }\n          iVar24 = iVar24 + 1;\n        } while (iVar24 < (int)image->rows);\n      }" if (parenthesized_expression "(0 < (int)image->rows)" ( (binary_expression "0 < (int)image->rows" number_literal < (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier))) )) (compound_statement "{\n        iVar24 = 0;\n        do {\n          memset(__s,0,sVar13);\n          pQVar14 = GetVirtualPixels(image,0,iVar24,image->columns,1,exception);\n          if (pQVar14 == (Quantum *)0x0) break;\n          local_ac = image->columns;\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (PixelChannelMap *)0x0;\n            do {\n              pPVar5 = image->channel_map;\n              uVar18 = (((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f) / 0xffff;\n              if ((pPVar5[4].traits != UndefinedPixelTrait) && (pQVar14[pPVar5[4].offset] == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = pQVar14[pPVar5->offset];\n                local_8c = pQVar14[pPVar5[2].offset];\n                local_84 = pQVar14[pPVar5[1].offset];\n              }\n              __s[(int)local_b8 * 2] = (char)(uVar18 >> 8);\n              __s[(int)local_b8 * 2 + 1] = (char)uVar18;\n              local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n              pQVar14 = pQVar14 + image->number_channels;\n            } while ((int)local_b8 < (int)image->columns);\n            CVar16 = image_info->compression;\n            if (CVar16 != RLECompression) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)sVar13) {\n              iVar21 = 0;\n              do {\n                uVar10 = __s[iVar21];\n                iVar28 = iVar21 + 1;\n                if (uVar10 == __s[iVar21 + 1]) {\n                  if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }\n                  uVar18 = 1;\n                  do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);\n                }\n                else {\n                  uVar18 = 1;\n                }\n                WriteBlobByte(image,(uchar)uVar18);\n                WriteBlobByte(image,uVar10);\n                iVar21 = iVar28;\n              } while (iVar28 < (int)sVar13);\n            }\n          }\n          else {\n            uVar18 = (uint)(byte)(8 - local_45);\n            local_b8 = (PixelChannelMap *)__s;\n            if ((int)local_ac < 1) {\n              cVar26 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              do {\n                while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                local_ac = image->columns;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n            }\n            else {\n              local_b8 = image->channel_map;\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              local_9c = __s;\n              do {\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n              local_b8 = (PixelChannelMap *)local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *(char *)local_b8 = cVar26;\n            }\nLAB_0026097b:\n            CVar16 = image_info->compression;\n            if (CVar16 == RLECompression) goto LAB_00260d43;\nLAB_0026098a:\n            if (CVar16 == FaxCompression) {\n              if (0 < (int)sVar13) {\n                pcVar20 = __s;\n                sVar29 = sVar13;\n                pcVar1 = local_7c;\n                do {\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);\n              }\n              memcpy(local_7c,__s,sVar13);\n            }\n            else {\n              WriteBlob(image,sVar13,__s);\n            }\n          }\n          iVar24 = iVar24 + 1;\n        } while (iVar24 < (int)image->rows);\n      }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (do_statement "do {\n          memset(__s,0,sVar13);\n          pQVar14 = GetVirtualPixels(image,0,iVar24,image->columns,1,exception);\n          if (pQVar14 == (Quantum *)0x0) break;\n          local_ac = image->columns;\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (PixelChannelMap *)0x0;\n            do {\n              pPVar5 = image->channel_map;\n              uVar18 = (((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f) / 0xffff;\n              if ((pPVar5[4].traits != UndefinedPixelTrait) && (pQVar14[pPVar5[4].offset] == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = pQVar14[pPVar5->offset];\n                local_8c = pQVar14[pPVar5[2].offset];\n                local_84 = pQVar14[pPVar5[1].offset];\n              }\n              __s[(int)local_b8 * 2] = (char)(uVar18 >> 8);\n              __s[(int)local_b8 * 2 + 1] = (char)uVar18;\n              local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n              pQVar14 = pQVar14 + image->number_channels;\n            } while ((int)local_b8 < (int)image->columns);\n            CVar16 = image_info->compression;\n            if (CVar16 != RLECompression) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)sVar13) {\n              iVar21 = 0;\n              do {\n                uVar10 = __s[iVar21];\n                iVar28 = iVar21 + 1;\n                if (uVar10 == __s[iVar21 + 1]) {\n                  if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }\n                  uVar18 = 1;\n                  do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);\n                }\n                else {\n                  uVar18 = 1;\n                }\n                WriteBlobByte(image,(uchar)uVar18);\n                WriteBlobByte(image,uVar10);\n                iVar21 = iVar28;\n              } while (iVar28 < (int)sVar13);\n            }\n          }\n          else {\n            uVar18 = (uint)(byte)(8 - local_45);\n            local_b8 = (PixelChannelMap *)__s;\n            if ((int)local_ac < 1) {\n              cVar26 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              do {\n                while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                local_ac = image->columns;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n            }\n            else {\n              local_b8 = image->channel_map;\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              local_9c = __s;\n              do {\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n              local_b8 = (PixelChannelMap *)local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *(char *)local_b8 = cVar26;\n            }\nLAB_0026097b:\n            CVar16 = image_info->compression;\n            if (CVar16 == RLECompression) goto LAB_00260d43;\nLAB_0026098a:\n            if (CVar16 == FaxCompression) {\n              if (0 < (int)sVar13) {\n                pcVar20 = __s;\n                sVar29 = sVar13;\n                pcVar1 = local_7c;\n                do {\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);\n              }\n              memcpy(local_7c,__s,sVar13);\n            }\n            else {\n              WriteBlob(image,sVar13,__s);\n            }\n          }\n          iVar24 = iVar24 + 1;\n        } while (iVar24 < (int)image->rows);" do (compound_statement "{\n          memset(__s,0,sVar13);\n          pQVar14 = GetVirtualPixels(image,0,iVar24,image->columns,1,exception);\n          if (pQVar14 == (Quantum *)0x0) break;\n          local_ac = image->columns;\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (PixelChannelMap *)0x0;\n            do {\n              pPVar5 = image->channel_map;\n              uVar18 = (((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f) / 0xffff;\n              if ((pPVar5[4].traits != UndefinedPixelTrait) && (pQVar14[pPVar5[4].offset] == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = pQVar14[pPVar5->offset];\n                local_8c = pQVar14[pPVar5[2].offset];\n                local_84 = pQVar14[pPVar5[1].offset];\n              }\n              __s[(int)local_b8 * 2] = (char)(uVar18 >> 8);\n              __s[(int)local_b8 * 2 + 1] = (char)uVar18;\n              local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n              pQVar14 = pQVar14 + image->number_channels;\n            } while ((int)local_b8 < (int)image->columns);\n            CVar16 = image_info->compression;\n            if (CVar16 != RLECompression) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)sVar13) {\n              iVar21 = 0;\n              do {\n                uVar10 = __s[iVar21];\n                iVar28 = iVar21 + 1;\n                if (uVar10 == __s[iVar21 + 1]) {\n                  if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }\n                  uVar18 = 1;\n                  do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);\n                }\n                else {\n                  uVar18 = 1;\n                }\n                WriteBlobByte(image,(uchar)uVar18);\n                WriteBlobByte(image,uVar10);\n                iVar21 = iVar28;\n              } while (iVar28 < (int)sVar13);\n            }\n          }\n          else {\n            uVar18 = (uint)(byte)(8 - local_45);\n            local_b8 = (PixelChannelMap *)__s;\n            if ((int)local_ac < 1) {\n              cVar26 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              do {\n                while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                local_ac = image->columns;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n            }\n            else {\n              local_b8 = image->channel_map;\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              local_9c = __s;\n              do {\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n              local_b8 = (PixelChannelMap *)local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *(char *)local_b8 = cVar26;\n            }\nLAB_0026097b:\n            CVar16 = image_info->compression;\n            if (CVar16 == RLECompression) goto LAB_00260d43;\nLAB_0026098a:\n            if (CVar16 == FaxCompression) {\n              if (0 < (int)sVar13) {\n                pcVar20 = __s;\n                sVar29 = sVar13;\n                pcVar1 = local_7c;\n                do {\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);\n              }\n              memcpy(local_7c,__s,sVar13);\n            }\n            else {\n              WriteBlob(image,sVar13,__s);\n            }\n          }\n          iVar24 = iVar24 + 1;\n        }" { (expression_statement "memset(__s,0,sVar13);" (call_expression "memset(__s,0,sVar13)" identifier (argument_list "(__s,0,sVar13)" ( identifier , number_literal , identifier ))) ;) (expression_statement "pQVar14 = GetVirtualPixels(image,0,iVar24,image->columns,1,exception);" (assignment_expression "pQVar14 = GetVirtualPixels(image,0,iVar24,image->columns,1,exception)" identifier = (call_expression "GetVirtualPixels(image,0,iVar24,image->columns,1,exception)" identifier (argument_list "(image,0,iVar24,image->columns,1,exception)" ( identifier , number_literal , identifier , (field_expression "image->columns" identifier -> field_identifier) , number_literal , identifier )))) ;) (if_statement "if (pQVar14 == (Quantum *)0x0) break;" if (parenthesized_expression "(pQVar14 == (Quantum *)0x0)" ( (binary_expression "pQVar14 == (Quantum *)0x0" identifier == (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "local_ac = image->columns;" (assignment_expression "local_ac = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (if_statement "if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (PixelChannelMap *)0x0;\n            do {\n              pPVar5 = image->channel_map;\n              uVar18 = (((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f) / 0xffff;\n              if ((pPVar5[4].traits != UndefinedPixelTrait) && (pQVar14[pPVar5[4].offset] == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = pQVar14[pPVar5->offset];\n                local_8c = pQVar14[pPVar5[2].offset];\n                local_84 = pQVar14[pPVar5[1].offset];\n              }\n              __s[(int)local_b8 * 2] = (char)(uVar18 >> 8);\n              __s[(int)local_b8 * 2 + 1] = (char)uVar18;\n              local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n              pQVar14 = pQVar14 + image->number_channels;\n            } while ((int)local_b8 < (int)image->columns);\n            CVar16 = image_info->compression;\n            if (CVar16 != RLECompression) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)sVar13) {\n              iVar21 = 0;\n              do {\n                uVar10 = __s[iVar21];\n                iVar28 = iVar21 + 1;\n                if (uVar10 == __s[iVar21 + 1]) {\n                  if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }\n                  uVar18 = 1;\n                  do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);\n                }\n                else {\n                  uVar18 = 1;\n                }\n                WriteBlobByte(image,(uchar)uVar18);\n                WriteBlobByte(image,uVar10);\n                iVar21 = iVar28;\n              } while (iVar28 < (int)sVar13);\n            }\n          }\n          else {\n            uVar18 = (uint)(byte)(8 - local_45);\n            local_b8 = (PixelChannelMap *)__s;\n            if ((int)local_ac < 1) {\n              cVar26 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              do {\n                while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                local_ac = image->columns;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n            }\n            else {\n              local_b8 = image->channel_map;\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              local_9c = __s;\n              do {\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n              local_b8 = (PixelChannelMap *)local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *(char *)local_b8 = cVar26;\n            }\nLAB_0026097b:\n            CVar16 = image_info->compression;\n            if (CVar16 == RLECompression) goto LAB_00260d43;\nLAB_0026098a:\n            if (CVar16 == FaxCompression) {\n              if (0 < (int)sVar13) {\n                pcVar20 = __s;\n                sVar29 = sVar13;\n                pcVar1 = local_7c;\n                do {\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);\n              }\n              memcpy(local_7c,__s,sVar13);\n            }\n            else {\n              WriteBlob(image,sVar13,__s);\n            }\n          }" if (parenthesized_expression "(local_a0 == 0x10)" ( (binary_expression "local_a0 == 0x10" identifier == number_literal) )) (compound_statement "{\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (PixelChannelMap *)0x0;\n            do {\n              pPVar5 = image->channel_map;\n              uVar18 = (((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f) / 0xffff;\n              if ((pPVar5[4].traits != UndefinedPixelTrait) && (pQVar14[pPVar5[4].offset] == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = pQVar14[pPVar5->offset];\n                local_8c = pQVar14[pPVar5[2].offset];\n                local_84 = pQVar14[pPVar5[1].offset];\n              }\n              __s[(int)local_b8 * 2] = (char)(uVar18 >> 8);\n              __s[(int)local_b8 * 2 + 1] = (char)uVar18;\n              local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n              pQVar14 = pQVar14 + image->number_channels;\n            } while ((int)local_b8 < (int)image->columns);\n            CVar16 = image_info->compression;\n            if (CVar16 != RLECompression) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)sVar13) {\n              iVar21 = 0;\n              do {\n                uVar10 = __s[iVar21];\n                iVar28 = iVar21 + 1;\n                if (uVar10 == __s[iVar21 + 1]) {\n                  if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }\n                  uVar18 = 1;\n                  do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);\n                }\n                else {\n                  uVar18 = 1;\n                }\n                WriteBlobByte(image,(uchar)uVar18);\n                WriteBlobByte(image,uVar10);\n                iVar21 = iVar28;\n              } while (iVar28 < (int)sVar13);\n            }\n          }" { (if_statement "if ((int)local_ac < 1) goto LAB_0026097b;" if (parenthesized_expression "((int)local_ac < 1)" ( (binary_expression "(int)local_ac < 1" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0026097b;" goto statement_identifier ;)) (expression_statement "local_b8 = (PixelChannelMap *)0x0;" (assignment_expression "local_b8 = (PixelChannelMap *)0x0" identifier = (cast_expression "(PixelChannelMap *)0x0" ( (type_descriptor "PixelChannelMap *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              pPVar5 = image->channel_map;\n              uVar18 = (((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f) / 0xffff;\n              if ((pPVar5[4].traits != UndefinedPixelTrait) && (pQVar14[pPVar5[4].offset] == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = pQVar14[pPVar5->offset];\n                local_8c = pQVar14[pPVar5[2].offset];\n                local_84 = pQVar14[pPVar5[1].offset];\n              }\n              __s[(int)local_b8 * 2] = (char)(uVar18 >> 8);\n              __s[(int)local_b8 * 2 + 1] = (char)uVar18;\n              local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n              pQVar14 = pQVar14 + image->number_channels;\n            } while ((int)local_b8 < (int)image->columns);" do (compound_statement "{\n              pPVar5 = image->channel_map;\n              uVar18 = (((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f) / 0xffff;\n              if ((pPVar5[4].traits != UndefinedPixelTrait) && (pQVar14[pPVar5[4].offset] == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = pQVar14[pPVar5->offset];\n                local_8c = pQVar14[pPVar5[2].offset];\n                local_84 = pQVar14[pPVar5[1].offset];\n              }\n              __s[(int)local_b8 * 2] = (char)(uVar18 >> 8);\n              __s[(int)local_b8 * 2 + 1] = (char)uVar18;\n              local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n              pQVar14 = pQVar14 + image->number_channels;\n            }" { (expression_statement "pPVar5 = image->channel_map;" (assignment_expression "pPVar5 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "uVar18 = (((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f) / 0xffff;" (assignment_expression "uVar18 = (((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f) / 0xffff" identifier = (binary_expression "(((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f) / 0xffff" (binary_expression "(((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800" (binary_expression "(((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20" (parenthesized_expression "(((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff)" ( (binary_expression "((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f) / 0xffff" (parenthesized_expression "((int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f)" ( (binary_expression "(int)ROUND(pQVar14[pPVar5[1].offset]) * 0x3f" (cast_expression "(int)ROUND(pQVar14[pPVar5[1].offset])" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(pQVar14[pPVar5[1].offset])" identifier (argument_list "(pQVar14[pPVar5[1].offset])" ( (subscript_expression "pQVar14[pPVar5[1].offset]" identifier [ (field_expression "pPVar5[1].offset" (subscript_expression "pPVar5[1]" identifier [ number_literal ]) . field_identifier) ]) )))) * number_literal) )) / number_literal) )) * number_literal) | (binary_expression "(((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800" (parenthesized_expression "(((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff)" ( (binary_expression "((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f) / 0xffff" (parenthesized_expression "((int)ROUND(pQVar14[pPVar5->offset]) * 0x1f)" ( (binary_expression "(int)ROUND(pQVar14[pPVar5->offset]) * 0x1f" (cast_expression "(int)ROUND(pQVar14[pPVar5->offset])" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(pQVar14[pPVar5->offset])" identifier (argument_list "(pQVar14[pPVar5->offset])" ( (subscript_expression "pQVar14[pPVar5->offset]" identifier [ (field_expression "pPVar5->offset" identifier -> field_identifier) ]) )))) * number_literal) )) / number_literal) )) * number_literal)) | (binary_expression "((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f) / 0xffff" (parenthesized_expression "((int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f)" ( (binary_expression "(int)ROUND(pQVar14[pPVar5[2].offset]) * 0x1f" (cast_expression "(int)ROUND(pQVar14[pPVar5[2].offset])" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(pQVar14[pPVar5[2].offset])" identifier (argument_list "(pQVar14[pPVar5[2].offset])" ( (subscript_expression "pQVar14[pPVar5[2].offset]" identifier [ (field_expression "pPVar5[2].offset" (subscript_expression "pPVar5[2]" identifier [ number_literal ]) . field_identifier) ]) )))) * number_literal) )) / number_literal))) ;) (if_statement "if ((pPVar5[4].traits != UndefinedPixelTrait) && (pQVar14[pPVar5[4].offset] == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = pQVar14[pPVar5->offset];\n                local_8c = pQVar14[pPVar5[2].offset];\n                local_84 = pQVar14[pPVar5[1].offset];\n              }" if (parenthesized_expression "((pPVar5[4].traits != UndefinedPixelTrait) && (pQVar14[pPVar5[4].offset] == 0.0))" ( (binary_expression "(pPVar5[4].traits != UndefinedPixelTrait) && (pQVar14[pPVar5[4].offset] == 0.0)" (parenthesized_expression "(pPVar5[4].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar5[4].traits != UndefinedPixelTrait" (field_expression "pPVar5[4].traits" (subscript_expression "pPVar5[4]" identifier [ number_literal ]) . field_identifier) != identifier) )) && (parenthesized_expression "(pQVar14[pPVar5[4].offset] == 0.0)" ( (binary_expression "pQVar14[pPVar5[4].offset] == 0.0" (subscript_expression "pQVar14[pPVar5[4].offset]" identifier [ (field_expression "pPVar5[4].offset" (subscript_expression "pPVar5[4]" identifier [ number_literal ]) . field_identifier) ]) == number_literal) ))) )) (compound_statement "{\n                local_48 = local_48 | 0x2000;\n                local_94 = pQVar14[pPVar5->offset];\n                local_8c = pQVar14[pPVar5[2].offset];\n                local_84 = pQVar14[pPVar5[1].offset];\n              }" { (expression_statement "local_48 = local_48 | 0x2000;" (assignment_expression "local_48 = local_48 | 0x2000" identifier = (binary_expression "local_48 | 0x2000" identifier | number_literal)) ;) (expression_statement "local_94 = pQVar14[pPVar5->offset];" (assignment_expression "local_94 = pQVar14[pPVar5->offset]" identifier = (subscript_expression "pQVar14[pPVar5->offset]" identifier [ (field_expression "pPVar5->offset" identifier -> field_identifier) ])) ;) (expression_statement "local_8c = pQVar14[pPVar5[2].offset];" (assignment_expression "local_8c = pQVar14[pPVar5[2].offset]" identifier = (subscript_expression "pQVar14[pPVar5[2].offset]" identifier [ (field_expression "pPVar5[2].offset" (subscript_expression "pPVar5[2]" identifier [ number_literal ]) . field_identifier) ])) ;) (expression_statement "local_84 = pQVar14[pPVar5[1].offset];" (assignment_expression "local_84 = pQVar14[pPVar5[1].offset]" identifier = (subscript_expression "pQVar14[pPVar5[1].offset]" identifier [ (field_expression "pPVar5[1].offset" (subscript_expression "pPVar5[1]" identifier [ number_literal ]) . field_identifier) ])) ;) })) (expression_statement "__s[(int)local_b8 * 2] = (char)(uVar18 >> 8);" (assignment_expression "__s[(int)local_b8 * 2] = (char)(uVar18 >> 8)" (subscript_expression "__s[(int)local_b8 * 2]" identifier [ (binary_expression "(int)local_b8 * 2" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]) = (cast_expression "(char)(uVar18 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar18 >> 8)" ( (binary_expression "uVar18 >> 8" identifier >> number_literal) )))) ;) (expression_statement "__s[(int)local_b8 * 2 + 1] = (char)uVar18;" (assignment_expression "__s[(int)local_b8 * 2 + 1] = (char)uVar18" (subscript_expression "__s[(int)local_b8 * 2 + 1]" identifier [ (binary_expression "(int)local_b8 * 2 + 1" (binary_expression "(int)local_b8 * 2" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) = (cast_expression "(char)uVar18" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "local_b8 = (PixelChannelMap *)((int)local_b8 + 1);" (assignment_expression "local_b8 = (PixelChannelMap *)((int)local_b8 + 1)" identifier = (cast_expression "(PixelChannelMap *)((int)local_b8 + 1)" ( (type_descriptor "PixelChannelMap *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b8 + 1)" ( (binary_expression "(int)local_b8 + 1" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pQVar14 = pQVar14 + image->number_channels;" (assignment_expression "pQVar14 = pQVar14 + image->number_channels" identifier = (binary_expression "pQVar14 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) }) while (parenthesized_expression "((int)local_b8 < (int)image->columns)" ( (binary_expression "(int)local_b8 < (int)image->columns" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)image->columns" ( (type_descriptor "int" primitive_type) ) (field_expression "image->columns" identifier -> field_identifier))) )) ;) (expression_statement "CVar16 = image_info->compression;" (assignment_expression "CVar16 = image_info->compression" identifier = (field_expression "image_info->compression" identifier -> field_identifier)) ;) (if_statement "if (CVar16 != RLECompression) goto LAB_0026098a;" if (parenthesized_expression "(CVar16 != RLECompression)" ( (binary_expression "CVar16 != RLECompression" identifier != identifier) )) (goto_statement "goto LAB_0026098a;" goto statement_identifier ;)) (labeled_statement "LAB_00260d43:\n            if (0 < (int)sVar13) {\n              iVar21 = 0;\n              do {\n                uVar10 = __s[iVar21];\n                iVar28 = iVar21 + 1;\n                if (uVar10 == __s[iVar21 + 1]) {\n                  if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }\n                  uVar18 = 1;\n                  do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);\n                }\n                else {\n                  uVar18 = 1;\n                }\n                WriteBlobByte(image,(uchar)uVar18);\n                WriteBlobByte(image,uVar10);\n                iVar21 = iVar28;\n              } while (iVar28 < (int)sVar13);\n            }" statement_identifier : (if_statement "if (0 < (int)sVar13) {\n              iVar21 = 0;\n              do {\n                uVar10 = __s[iVar21];\n                iVar28 = iVar21 + 1;\n                if (uVar10 == __s[iVar21 + 1]) {\n                  if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }\n                  uVar18 = 1;\n                  do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);\n                }\n                else {\n                  uVar18 = 1;\n                }\n                WriteBlobByte(image,(uchar)uVar18);\n                WriteBlobByte(image,uVar10);\n                iVar21 = iVar28;\n              } while (iVar28 < (int)sVar13);\n            }" if (parenthesized_expression "(0 < (int)sVar13)" ( (binary_expression "0 < (int)sVar13" number_literal < (cast_expression "(int)sVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              iVar21 = 0;\n              do {\n                uVar10 = __s[iVar21];\n                iVar28 = iVar21 + 1;\n                if (uVar10 == __s[iVar21 + 1]) {\n                  if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }\n                  uVar18 = 1;\n                  do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);\n                }\n                else {\n                  uVar18 = 1;\n                }\n                WriteBlobByte(image,(uchar)uVar18);\n                WriteBlobByte(image,uVar10);\n                iVar21 = iVar28;\n              } while (iVar28 < (int)sVar13);\n            }" { (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" identifier = number_literal) ;) (do_statement "do {\n                uVar10 = __s[iVar21];\n                iVar28 = iVar21 + 1;\n                if (uVar10 == __s[iVar21 + 1]) {\n                  if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }\n                  uVar18 = 1;\n                  do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);\n                }\n                else {\n                  uVar18 = 1;\n                }\n                WriteBlobByte(image,(uchar)uVar18);\n                WriteBlobByte(image,uVar10);\n                iVar21 = iVar28;\n              } while (iVar28 < (int)sVar13);" do (compound_statement "{\n                uVar10 = __s[iVar21];\n                iVar28 = iVar21 + 1;\n                if (uVar10 == __s[iVar21 + 1]) {\n                  if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }\n                  uVar18 = 1;\n                  do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);\n                }\n                else {\n                  uVar18 = 1;\n                }\n                WriteBlobByte(image,(uchar)uVar18);\n                WriteBlobByte(image,uVar10);\n                iVar21 = iVar28;\n              }" { (expression_statement "uVar10 = __s[iVar21];" (assignment_expression "uVar10 = __s[iVar21]" identifier = (subscript_expression "__s[iVar21]" identifier [ identifier ])) ;) (expression_statement "iVar28 = iVar21 + 1;" (assignment_expression "iVar28 = iVar21 + 1" identifier = (binary_expression "iVar21 + 1" identifier + number_literal)) ;) (if_statement "if (uVar10 == __s[iVar21 + 1]) {\n                  if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }\n                  uVar18 = 1;\n                  do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);\n                }\n                else {\n                  uVar18 = 1;\n                }" if (parenthesized_expression "(uVar10 == __s[iVar21 + 1])" ( (binary_expression "uVar10 == __s[iVar21 + 1]" identifier == (subscript_expression "__s[iVar21 + 1]" identifier [ (binary_expression "iVar21 + 1" identifier + number_literal) ])) )) (compound_statement "{\n                  if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }\n                  uVar18 = 1;\n                  do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);\n                }" { (if_statement "if ((int)sVar13 <= iVar28) {\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }" if (parenthesized_expression "((int)sVar13 <= iVar28)" ( (binary_expression "(int)sVar13 <= iVar28" (cast_expression "(int)sVar13" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    WriteBlobByte(image,'\x01');\n                    WriteBlobByte(image,uVar10);\n                    break;\n                  }" { (expression_statement "WriteBlobByte(image,'\x01');" (call_expression "WriteBlobByte(image,'\x01')" identifier (argument_list "(image,'\x01')" ( identifier , (char_literal "'\x01'" ' escape_sequence ') ))) ;) (expression_statement "WriteBlobByte(image,uVar10);" (call_expression "WriteBlobByte(image,uVar10)" identifier (argument_list "(image,uVar10)" ( identifier , identifier ))) ;) (break_statement "break;" break ;) })) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) (do_statement "do {\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  } while (iVar28 < (int)sVar13);" do (compound_statement "{\n                    uVar18 = uVar18 + 1;\n                    iVar28 = iVar21 + uVar18;\n                    if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;\n                  }" { (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar28 = iVar21 + uVar18;" (assignment_expression "iVar28 = iVar21 + uVar18" identifier = (binary_expression "iVar21 + uVar18" identifier + identifier)) ;) (if_statement "if (((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)) break;" if (parenthesized_expression "(((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18))" ( (binary_expression "((__s + iVar21)[uVar18] != uVar10) || (0xfe < uVar18)" (parenthesized_expression "((__s + iVar21)[uVar18] != uVar10)" ( (binary_expression "(__s + iVar21)[uVar18] != uVar10" (subscript_expression "(__s + iVar21)[uVar18]" (parenthesized_expression "(__s + iVar21)" ( (binary_expression "__s + iVar21" identifier + identifier) )) [ identifier ]) != identifier) )) || (parenthesized_expression "(0xfe < uVar18)" ( (binary_expression "0xfe < uVar18" number_literal < identifier) ))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(iVar28 < (int)sVar13)" ( (binary_expression "iVar28 < (int)sVar13" identifier < (cast_expression "(int)sVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) }) (else_clause "else {\n                  uVar18 = 1;\n                }" else (compound_statement "{\n                  uVar18 = 1;\n                }" { (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) }))) (expression_statement "WriteBlobByte(image,(uchar)uVar18);" (call_expression "WriteBlobByte(image,(uchar)uVar18)" identifier (argument_list "(image,(uchar)uVar18)" ( identifier , (cast_expression "(uchar)uVar18" ( (type_descriptor "uchar" type_identifier) ) identifier) ))) ;) (expression_statement "WriteBlobByte(image,uVar10);" (call_expression "WriteBlobByte(image,uVar10)" identifier (argument_list "(image,uVar10)" ( identifier , identifier ))) ;) (expression_statement "iVar21 = iVar28;" (assignment_expression "iVar21 = iVar28" identifier = identifier) ;) }) while (parenthesized_expression "(iVar28 < (int)sVar13)" ( (binary_expression "iVar28 < (int)sVar13" identifier < (cast_expression "(int)sVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) }))) }) (else_clause "else {\n            uVar18 = (uint)(byte)(8 - local_45);\n            local_b8 = (PixelChannelMap *)__s;\n            if ((int)local_ac < 1) {\n              cVar26 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              do {\n                while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                local_ac = image->columns;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n            }\n            else {\n              local_b8 = image->channel_map;\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              local_9c = __s;\n              do {\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n              local_b8 = (PixelChannelMap *)local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *(char *)local_b8 = cVar26;\n            }\nLAB_0026097b:\n            CVar16 = image_info->compression;\n            if (CVar16 == RLECompression) goto LAB_00260d43;\nLAB_0026098a:\n            if (CVar16 == FaxCompression) {\n              if (0 < (int)sVar13) {\n                pcVar20 = __s;\n                sVar29 = sVar13;\n                pcVar1 = local_7c;\n                do {\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);\n              }\n              memcpy(local_7c,__s,sVar13);\n            }\n            else {\n              WriteBlob(image,sVar13,__s);\n            }\n          }" else (compound_statement "{\n            uVar18 = (uint)(byte)(8 - local_45);\n            local_b8 = (PixelChannelMap *)__s;\n            if ((int)local_ac < 1) {\n              cVar26 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              do {\n                while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                local_ac = image->columns;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n            }\n            else {\n              local_b8 = image->channel_map;\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              local_9c = __s;\n              do {\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n              local_b8 = (PixelChannelMap *)local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *(char *)local_b8 = cVar26;\n            }\nLAB_0026097b:\n            CVar16 = image_info->compression;\n            if (CVar16 == RLECompression) goto LAB_00260d43;\nLAB_0026098a:\n            if (CVar16 == FaxCompression) {\n              if (0 < (int)sVar13) {\n                pcVar20 = __s;\n                sVar29 = sVar13;\n                pcVar1 = local_7c;\n                do {\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);\n              }\n              memcpy(local_7c,__s,sVar13);\n            }\n            else {\n              WriteBlob(image,sVar13,__s);\n            }\n          }" { (expression_statement "uVar18 = (uint)(byte)(8 - local_45);" (assignment_expression "uVar18 = (uint)(byte)(8 - local_45)" identifier = (call_expression "(uint)(byte)(8 - local_45)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(8 - local_45)" ( (binary_expression "8 - local_45" number_literal - identifier) )))) ;) (expression_statement "local_b8 = (PixelChannelMap *)__s;" (assignment_expression "local_b8 = (PixelChannelMap *)__s" identifier = (cast_expression "(PixelChannelMap *)__s" ( (type_descriptor "PixelChannelMap *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((int)local_ac < 1) {\n              cVar26 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              do {\n                while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                local_ac = image->columns;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n            }\n            else {\n              local_b8 = image->channel_map;\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              local_9c = __s;\n              do {\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n              local_b8 = (PixelChannelMap *)local_9c;\n            }" if (parenthesized_expression "((int)local_ac < 1)" ( (binary_expression "(int)local_ac < 1" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              cVar26 = '\0';\n            }" { (expression_statement "cVar26 = '\0';" (assignment_expression "cVar26 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else if (local_a0 < 8) {\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              do {\n                while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                local_ac = image->columns;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n            }\n            else {\n              local_b8 = image->channel_map;\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              local_9c = __s;\n              do {\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n              local_b8 = (PixelChannelMap *)local_9c;\n            }" else (if_statement "if (local_a0 < 8) {\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              do {\n                while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                local_ac = image->columns;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n            }\n            else {\n              local_b8 = image->channel_map;\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              local_9c = __s;\n              do {\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n              local_b8 = (PixelChannelMap *)local_9c;\n            }" if (parenthesized_expression "(local_a0 < 8)" ( (binary_expression "local_a0 < 8" identifier < number_literal) )) (compound_statement "{\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              do {\n                while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                local_ac = image->columns;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n            }" { (expression_statement "uVar27 = 0;" (assignment_expression "uVar27 = 0" identifier = number_literal) ;) (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = uVar18;" (assignment_expression "uVar19 = uVar18" identifier = identifier) ;) (do_statement "do {\n                while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                local_ac = image->columns;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);" do (compound_statement "{\n                while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                local_ac = image->columns;\n                uVar19 = uVar19 - local_a0;\n              }" { (while_statement "while( true ) {\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }\n                  dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);\n                  uVar15 = image->colors - 1;\n                  if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *(char *)local_b8 = cVar26;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  local_ac = image->columns;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                }" { (if_statement "if (image->channel_map[5].traits == UndefinedPixelTrait) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }" if (parenthesized_expression "(image->channel_map[5].traits == UndefinedPixelTrait)" ( (binary_expression "image->channel_map[5].traits == UndefinedPixelTrait" (field_expression "image->channel_map[5].traits" (subscript_expression "image->channel_map[5]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) == identifier) )) (compound_statement "{\n                    dVar2 = 0.0;\n                  }" { (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }" else (compound_statement "{\n                    dVar2 = pQVar14[image->channel_map[5].offset];\n                  }" { (expression_statement "dVar2 = pQVar14[image->channel_map[5].offset];" (assignment_expression "dVar2 = pQVar14[image->channel_map[5].offset]" identifier = (subscript_expression "pQVar14[image->channel_map[5].offset]" identifier [ (field_expression "image->channel_map[5].offset" (subscript_expression "image->channel_map[5]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) ;) }))) (expression_statement "dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1);" (assignment_expression "dVar2 = dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1)" identifier = (binary_expression "dVar2 * (double)((1 << ((byte)local_a0 & 0x1f)) + -1)" identifier * (cast_expression "(double)((1 << ((byte)local_a0 & 0x1f)) + -1)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((1 << ((byte)local_a0 & 0x1f)) + -1)" ( (binary_expression "(1 << ((byte)local_a0 & 0x1f)) + -1" (parenthesized_expression "(1 << ((byte)local_a0 & 0x1f))" ( (binary_expression "1 << ((byte)local_a0 & 0x1f)" number_literal << (parenthesized_expression "((byte)local_a0 & 0x1f)" ( (binary_expression "(byte)local_a0 & 0x1f" (cast_expression "(byte)local_a0" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )) + number_literal) ))))) ;) (expression_statement "uVar15 = image->colors - 1;" (assignment_expression "uVar15 = image->colors - 1" identifier = (binary_expression "image->colors - 1" (field_expression "image->colors" identifier -> field_identifier) - number_literal)) ;) (if_statement "if (1 < uVar15) {\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }" if (parenthesized_expression "(1 < uVar15)" ( (binary_expression "1 < uVar15" number_literal < identifier) )) (compound_statement "{\n                    local_cc = (ulonglong)uVar15;\n                    dVar2 = dVar2 / (double)local_cc;\n                  }" { (expression_statement "local_cc = (ulonglong)uVar15;" (assignment_expression "local_cc = (ulonglong)uVar15" identifier = (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "dVar2 = dVar2 / (double)local_cc;" (assignment_expression "dVar2 = dVar2 / (double)local_cc" identifier = (binary_expression "dVar2 / (double)local_cc" identifier / (cast_expression "(double)local_cc" ( (type_descriptor "double" primitive_type) ) identifier))) ;) })) (expression_statement "uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f);" (assignment_expression "uVar27 = uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f)" identifier = (binary_expression "uVar27 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f)" identifier | (binary_expression "(uint)(byte)(short)ROUND(dVar2) << ((byte)uVar19 & 0x1f)" (cast_expression "(uint)(byte)(short)ROUND(dVar2)" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)(short)ROUND(dVar2)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar2)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier )))))) << (parenthesized_expression "((byte)uVar19 & 0x1f)" ( (binary_expression "(byte)uVar19 & 0x1f" (cast_expression "(byte)uVar19" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) (expression_statement "cVar26 = (char)uVar27;" (assignment_expression "cVar26 = (char)uVar27" identifier = (cast_expression "(char)uVar27" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (uVar19 != 0) break;" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar21 = iVar21 + 1;" (assignment_expression "iVar21 = iVar21 + 1" identifier = (binary_expression "iVar21 + 1" identifier + number_literal)) ;) (expression_statement "*(char *)local_b8 = cVar26;" (assignment_expression "*(char *)local_b8 = cVar26" (pointer_expression "*(char *)local_b8" * (cast_expression "(char *)local_b8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pQVar14 = pQVar14 + image->number_channels;" (assignment_expression "pQVar14 = pQVar14 + image->number_channels" identifier = (binary_expression "pQVar14 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "local_ac = image->columns;" (assignment_expression "local_ac = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (if_statement "if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }" if (parenthesized_expression "((int)local_ac <= iVar21)" ( (binary_expression "(int)local_ac <= iVar21" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)((int)local_b8 + 1);\n                    goto LAB_0026095c;\n                  }" { (expression_statement "cVar26 = '\0';" (assignment_expression "cVar26 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_b8 = (PixelChannelMap *)((int)local_b8 + 1);" (assignment_expression "local_b8 = (PixelChannelMap *)((int)local_b8 + 1)" identifier = (cast_expression "(PixelChannelMap *)((int)local_b8 + 1)" ( (type_descriptor "PixelChannelMap *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b8 + 1)" ( (binary_expression "(int)local_b8 + 1" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_0026095c;" goto statement_identifier ;) })) (expression_statement "uVar27 = 0;" (assignment_expression "uVar27 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = uVar18;" (assignment_expression "uVar19 = uVar18" identifier = identifier) ;) (expression_statement "local_b8 = (PixelChannelMap *)((int)local_b8 + 1);" (assignment_expression "local_b8 = (PixelChannelMap *)((int)local_b8 + 1)" identifier = (cast_expression "(PixelChannelMap *)((int)local_b8 + 1)" ( (type_descriptor "PixelChannelMap *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b8 + 1)" ( (binary_expression "(int)local_b8 + 1" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "iVar21 = iVar21 + 1;" (assignment_expression "iVar21 = iVar21 + 1" identifier = (binary_expression "iVar21 + 1" identifier + number_literal)) ;) (expression_statement "pQVar14 = pQVar14 + image->number_channels;" (assignment_expression "pQVar14 = pQVar14 + image->number_channels" identifier = (binary_expression "pQVar14 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "local_ac = image->columns;" (assignment_expression "local_ac = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (expression_statement "uVar19 = uVar19 - local_a0;" (assignment_expression "uVar19 = uVar19 - local_a0" identifier = (binary_expression "uVar19 - local_a0" identifier - identifier)) ;) }) while (parenthesized_expression "(iVar21 < (int)local_ac)" ( (binary_expression "iVar21 < (int)local_ac" identifier < (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) }) (else_clause "else {\n              local_b8 = image->channel_map;\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              local_9c = __s;\n              do {\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n              local_b8 = (PixelChannelMap *)local_9c;\n            }" else (compound_statement "{\n              local_b8 = image->channel_map;\n              uVar27 = 0;\n              iVar21 = 0;\n              uVar19 = uVar18;\n              local_9c = __s;\n              do {\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);\n              local_b8 = (PixelChannelMap *)local_9c;\n            }" { (expression_statement "local_b8 = image->channel_map;" (assignment_expression "local_b8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "uVar27 = 0;" (assignment_expression "uVar27 = 0" identifier = number_literal) ;) (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = uVar18;" (assignment_expression "uVar19 = uVar18" identifier = identifier) ;) (expression_statement "local_9c = __s;" (assignment_expression "local_9c = __s" identifier = identifier) ;) (do_statement "do {\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              } while (iVar21 < (int)local_ac);" do (compound_statement "{\n                while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }\n                iVar21 = iVar21 + 1;\n                pQVar14 = pQVar14 + image->number_channels;\n                uVar19 = uVar19 - local_a0;\n              }" { (while_statement "while( true ) {\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }\n                  cVar26 = (char)uVar27;\n                  if (uVar19 != 0) break;\n                  iVar21 = iVar21 + 1;\n                  *local_9c = cVar26;\n                  local_ac = image->columns;\n                  pQVar14 = pQVar14 + image->number_channels;\n                  if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = image->channel_map;\n                  uVar27 = 0;\n                  uVar19 = uVar18;\n                  local_9c = local_9c + 1;\n                }" { (if_statement "if (local_b8[5].traits != UndefinedPixelTrait) {\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }" if (parenthesized_expression "(local_b8[5].traits != UndefinedPixelTrait)" ( (binary_expression "local_b8[5].traits != UndefinedPixelTrait" (field_expression "local_b8[5].traits" (subscript_expression "local_b8[5]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n                    uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);\n                  }" { (expression_statement "uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f);" (assignment_expression "uVar27 = uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f)" identifier = (binary_expression "uVar27 | (uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f)" identifier | (binary_expression "(uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset]) <<\n                                      ((byte)uVar19 & 0x1f)" (cast_expression "(uint)(byte)(short)ROUND(pQVar14[local_b8[5].offset])" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)(short)ROUND(pQVar14[local_b8[5].offset])" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(pQVar14[local_b8[5].offset])" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(pQVar14[local_b8[5].offset])" identifier (argument_list "(pQVar14[local_b8[5].offset])" ( (subscript_expression "pQVar14[local_b8[5].offset]" identifier [ (field_expression "local_b8[5].offset" (subscript_expression "local_b8[5]" identifier [ number_literal ]) . field_identifier) ]) )))))) << (parenthesized_expression "((byte)uVar19 & 0x1f)" ( (binary_expression "(byte)uVar19 & 0x1f" (cast_expression "(byte)uVar19" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) })) (expression_statement "cVar26 = (char)uVar27;" (assignment_expression "cVar26 = (char)uVar27" identifier = (cast_expression "(char)uVar27" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (uVar19 != 0) break;" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar21 = iVar21 + 1;" (assignment_expression "iVar21 = iVar21 + 1" identifier = (binary_expression "iVar21 + 1" identifier + number_literal)) ;) (expression_statement "*local_9c = cVar26;" (assignment_expression "*local_9c = cVar26" (pointer_expression "*local_9c" * identifier) = identifier) ;) (expression_statement "local_ac = image->columns;" (assignment_expression "local_ac = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (expression_statement "pQVar14 = pQVar14 + image->number_channels;" (assignment_expression "pQVar14 = pQVar14 + image->number_channels" identifier = (binary_expression "pQVar14 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (if_statement "if ((int)local_ac <= iVar21) {\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }" if (parenthesized_expression "((int)local_ac <= iVar21)" ( (binary_expression "(int)local_ac <= iVar21" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    cVar26 = '\0';\n                    local_b8 = (PixelChannelMap *)(local_9c + 1);\n                    goto LAB_0026095c;\n                  }" { (expression_statement "cVar26 = '\0';" (assignment_expression "cVar26 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_b8 = (PixelChannelMap *)(local_9c + 1);" (assignment_expression "local_b8 = (PixelChannelMap *)(local_9c + 1)" identifier = (cast_expression "(PixelChannelMap *)(local_9c + 1)" ( (type_descriptor "PixelChannelMap *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c + 1)" ( (binary_expression "local_9c + 1" identifier + number_literal) )))) ;) (goto_statement "goto LAB_0026095c;" goto statement_identifier ;) })) (expression_statement "local_b8 = image->channel_map;" (assignment_expression "local_b8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "uVar27 = 0;" (assignment_expression "uVar27 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = uVar18;" (assignment_expression "uVar19 = uVar18" identifier = identifier) ;) (expression_statement "local_9c = local_9c + 1;" (assignment_expression "local_9c = local_9c + 1" identifier = (binary_expression "local_9c + 1" identifier + number_literal)) ;) })) (expression_statement "iVar21 = iVar21 + 1;" (assignment_expression "iVar21 = iVar21 + 1" identifier = (binary_expression "iVar21 + 1" identifier + number_literal)) ;) (expression_statement "pQVar14 = pQVar14 + image->number_channels;" (assignment_expression "pQVar14 = pQVar14 + image->number_channels" identifier = (binary_expression "pQVar14 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "uVar19 = uVar19 - local_a0;" (assignment_expression "uVar19 = uVar19 - local_a0" identifier = (binary_expression "uVar19 - local_a0" identifier - identifier)) ;) }) while (parenthesized_expression "(iVar21 < (int)local_ac)" ( (binary_expression "iVar21 < (int)local_ac" identifier < (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "local_b8 = (PixelChannelMap *)local_9c;" (assignment_expression "local_b8 = (PixelChannelMap *)local_9c" identifier = (cast_expression "(PixelChannelMap *)local_9c" ( (type_descriptor "PixelChannelMap *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))))) (labeled_statement "LAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *(char *)local_b8 = cVar26;\n            }" statement_identifier : (if_statement "if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *(char *)local_b8 = cVar26;\n            }" if (parenthesized_expression "((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0)" ( (binary_expression "(int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0" (cast_expression "(int)((ulonglong)local_ac % (8 / (ulonglong)local_a0))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)local_ac % (8 / (ulonglong)local_a0))" ( (binary_expression "(ulonglong)local_ac % (8 / (ulonglong)local_a0)" (cast_expression "(ulonglong)local_ac" ( (type_descriptor "ulonglong" type_identifier) ) identifier) % (parenthesized_expression "(8 / (ulonglong)local_a0)" ( (binary_expression "8 / (ulonglong)local_a0" number_literal / (cast_expression "(ulonglong)local_a0" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ))) ))) != number_literal) )) (compound_statement "{\n              *(char *)local_b8 = cVar26;\n            }" { (expression_statement "*(char *)local_b8 = cVar26;" (assignment_expression "*(char *)local_b8 = cVar26" (pointer_expression "*(char *)local_b8" * (cast_expression "(char *)local_b8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) }))) (labeled_statement "LAB_0026097b:\n            CVar16 = image_info->compression;" statement_identifier : (expression_statement "CVar16 = image_info->compression;" (assignment_expression "CVar16 = image_info->compression" identifier = (field_expression "image_info->compression" identifier -> field_identifier)) ;)) (if_statement "if (CVar16 == RLECompression) goto LAB_00260d43;" if (parenthesized_expression "(CVar16 == RLECompression)" ( (binary_expression "CVar16 == RLECompression" identifier == identifier) )) (goto_statement "goto LAB_00260d43;" goto statement_identifier ;)) (labeled_statement "LAB_0026098a:\n            if (CVar16 == FaxCompression) {\n              if (0 < (int)sVar13) {\n                pcVar20 = __s;\n                sVar29 = sVar13;\n                pcVar1 = local_7c;\n                do {\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);\n              }\n              memcpy(local_7c,__s,sVar13);\n            }\n            else {\n              WriteBlob(image,sVar13,__s);\n            }" statement_identifier : (if_statement "if (CVar16 == FaxCompression) {\n              if (0 < (int)sVar13) {\n                pcVar20 = __s;\n                sVar29 = sVar13;\n                pcVar1 = local_7c;\n                do {\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);\n              }\n              memcpy(local_7c,__s,sVar13);\n            }\n            else {\n              WriteBlob(image,sVar13,__s);\n            }" if (parenthesized_expression "(CVar16 == FaxCompression)" ( (binary_expression "CVar16 == FaxCompression" identifier == identifier) )) (compound_statement "{\n              if (0 < (int)sVar13) {\n                pcVar20 = __s;\n                sVar29 = sVar13;\n                pcVar1 = local_7c;\n                do {\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);\n              }\n              memcpy(local_7c,__s,sVar13);\n            }" { (if_statement "if (0 < (int)sVar13) {\n                pcVar20 = __s;\n                sVar29 = sVar13;\n                pcVar1 = local_7c;\n                do {\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);\n              }" if (parenthesized_expression "(0 < (int)sVar13)" ( (binary_expression "0 < (int)sVar13" number_literal < (cast_expression "(int)sVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pcVar20 = __s;\n                sVar29 = sVar13;\n                pcVar1 = local_7c;\n                do {\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);\n              }" { (expression_statement "pcVar20 = __s;" (assignment_expression "pcVar20 = __s" identifier = identifier) ;) (expression_statement "sVar29 = sVar13;" (assignment_expression "sVar29 = sVar13" identifier = identifier) ;) (expression_statement "pcVar1 = local_7c;" (assignment_expression "pcVar1 = local_7c" identifier = identifier) ;) (do_statement "do {\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                } while ((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29);" do (compound_statement "{\n                  sVar25 = 8;\n                  if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }\n                  if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  sVar29 = sVar29 - 8;\n                  WriteBlobByte(image,value);\n                  WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar20 = pcVar20 + 8;\n                }" { (expression_statement "sVar25 = 8;" (assignment_expression "sVar25 = 8" identifier = number_literal) ;) (if_statement "if ((int)sVar29 < 9) {\n                    sVar25 = sVar29;\n                  }" if (parenthesized_expression "((int)sVar29 < 9)" ( (binary_expression "(int)sVar29 < 9" (cast_expression "(int)sVar29" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    sVar25 = sVar29;\n                  }" { (expression_statement "sVar25 = sVar29;" (assignment_expression "sVar25 = sVar29" identifier = identifier) ;) })) (if_statement "if (iVar24 == 0) {\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }\n                  else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n                    tmpbuf[0] = *pcVar20;\n                    if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = tmpbuf + sVar25;\n                  }" { (expression_statement "tmpbuf[0] = *pcVar20;" (assignment_expression "tmpbuf[0] = *pcVar20" (subscript_expression "tmpbuf[0]" identifier [ number_literal ]) = (pointer_expression "*pcVar20" * identifier)) ;) (if_statement "if (sVar29 == 1) {\n                      value = 0x80;\n                    }\n                    else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" if (parenthesized_expression "(sVar29 == 1)" ( (binary_expression "sVar29 == 1" identifier == number_literal) )) (compound_statement "{\n                      value = 0x80;\n                    }" { (expression_statement "value = 0x80;" (assignment_expression "value = 0x80" identifier = number_literal) ;) }) (else_clause "else {\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" else (compound_statement "{\n                      tmpbuf[1] = pcVar20[1];\n                      if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" { (expression_statement "tmpbuf[1] = pcVar20[1];" (assignment_expression "tmpbuf[1] = pcVar20[1]" (subscript_expression "tmpbuf[1]" identifier [ number_literal ]) = (subscript_expression "pcVar20[1]" identifier [ number_literal ])) ;) (if_statement "if (sVar29 == 2) {\n                        value = 0xc0;\n                      }\n                      else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" if (parenthesized_expression "(sVar29 == 2)" ( (binary_expression "sVar29 == 2" identifier == number_literal) )) (compound_statement "{\n                        value = 0xc0;\n                      }" { (expression_statement "value = 0xc0;" (assignment_expression "value = 0xc0" identifier = number_literal) ;) }) (else_clause "else {\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" else (compound_statement "{\n                        tmpbuf[2] = pcVar20[2];\n                        if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" { (expression_statement "tmpbuf[2] = pcVar20[2];" (assignment_expression "tmpbuf[2] = pcVar20[2]" (subscript_expression "tmpbuf[2]" identifier [ number_literal ]) = (subscript_expression "pcVar20[2]" identifier [ number_literal ])) ;) (if_statement "if (sVar29 == 3) {\n                          value = 0xe0;\n                        }\n                        else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }" if (parenthesized_expression "(sVar29 == 3)" ( (binary_expression "sVar29 == 3" identifier == number_literal) )) (compound_statement "{\n                          value = 0xe0;\n                        }" { (expression_statement "value = 0xe0;" (assignment_expression "value = 0xe0" identifier = number_literal) ;) }) (else_clause "else {\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }" else (compound_statement "{\n                          tmpbuf[3] = pcVar20[3];\n                          if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }" { (expression_statement "tmpbuf[3] = pcVar20[3];" (assignment_expression "tmpbuf[3] = pcVar20[3]" (subscript_expression "tmpbuf[3]" identifier [ number_literal ]) = (subscript_expression "pcVar20[3]" identifier [ number_literal ])) ;) (if_statement "if (sVar29 == 4) {\n                            value = 0xf0;\n                          }\n                          else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }" if (parenthesized_expression "(sVar29 == 4)" ( (binary_expression "sVar29 == 4" identifier == number_literal) )) (compound_statement "{\n                            value = 0xf0;\n                          }" { (expression_statement "value = 0xf0;" (assignment_expression "value = 0xf0" identifier = number_literal) ;) }) (else_clause "else {\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }" else (compound_statement "{\n                            tmpbuf[4] = pcVar20[4];\n                            if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }\n                          }" { (expression_statement "tmpbuf[4] = pcVar20[4];" (assignment_expression "tmpbuf[4] = pcVar20[4]" (subscript_expression "tmpbuf[4]" identifier [ number_literal ]) = (subscript_expression "pcVar20[4]" identifier [ number_literal ])) ;) (if_statement "if (sVar29 == 5) {\n                              value = 0xf8;\n                            }\n                            else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }" if (parenthesized_expression "(sVar29 == 5)" ( (binary_expression "sVar29 == 5" identifier == number_literal) )) (compound_statement "{\n                              value = 0xf8;\n                            }" { (expression_statement "value = 0xf8;" (assignment_expression "value = 0xf8" identifier = number_literal) ;) }) (else_clause "else {\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }" else (compound_statement "{\n                              tmpbuf[5] = pcVar20[5];\n                              if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }\n                            }" { (expression_statement "tmpbuf[5] = pcVar20[5];" (assignment_expression "tmpbuf[5] = pcVar20[5]" (subscript_expression "tmpbuf[5]" identifier [ number_literal ]) = (subscript_expression "pcVar20[5]" identifier [ number_literal ])) ;) (if_statement "if (sVar29 == 6) {\n                                value = 0xfc;\n                              }\n                              else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }" if (parenthesized_expression "(sVar29 == 6)" ( (binary_expression "sVar29 == 6" identifier == number_literal) )) (compound_statement "{\n                                value = 0xfc;\n                              }" { (expression_statement "value = 0xfc;" (assignment_expression "value = 0xfc" identifier = number_literal) ;) }) (else_clause "else {\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }" else (compound_statement "{\n                                tmpbuf[6] = pcVar20[6];\n                                if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }\n                              }" { (expression_statement "tmpbuf[6] = pcVar20[6];" (assignment_expression "tmpbuf[6] = pcVar20[6]" (subscript_expression "tmpbuf[6]" identifier [ number_literal ]) = (subscript_expression "pcVar20[6]" identifier [ number_literal ])) ;) (if_statement "if ((int)sVar29 < 8) {\n                                  value = 0xfe;\n                                }\n                                else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }" if (parenthesized_expression "((int)sVar29 < 8)" ( (binary_expression "(int)sVar29 < 8" (cast_expression "(int)sVar29" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                                  value = 0xfe;\n                                }" { (expression_statement "value = 0xfe;" (assignment_expression "value = 0xfe" identifier = number_literal) ;) }) (else_clause "else {\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }" else (compound_statement "{\n                                  tmpbuf[7] = pcVar20[7];\n                                  value = 0xff;\n                                }" { (expression_statement "tmpbuf[7] = pcVar20[7];" (assignment_expression "tmpbuf[7] = pcVar20[7]" (subscript_expression "tmpbuf[7]" identifier [ number_literal ]) = (subscript_expression "pcVar20[7]" identifier [ number_literal ])) ;) (expression_statement "value = 0xff;" (assignment_expression "value = 0xff" identifier = number_literal) ;) }))) }))) }))) }))) }))) }))) }))) (expression_statement "local_78 = tmpbuf + sVar25;" (assignment_expression "local_78 = tmpbuf + sVar25" identifier = (binary_expression "tmpbuf + sVar25" identifier + identifier)) ;) }) (else_clause "else {\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" else (compound_statement "{\n                    if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }\n                    if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" { (if_statement "if (*pcVar20 == *pcVar1) {\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }\n                    else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }" if (parenthesized_expression "(*pcVar20 == *pcVar1)" ( (binary_expression "*pcVar20 == *pcVar1" (pointer_expression "*pcVar20" * identifier) == (pointer_expression "*pcVar1" * identifier)) )) (compound_statement "{\n                      value = 0;\n                      local_78 = tmpbuf;\n                    }" { (expression_statement "value = 0;" (assignment_expression "value = 0" identifier = number_literal) ;) (expression_statement "local_78 = tmpbuf;" (assignment_expression "local_78 = tmpbuf" identifier = identifier) ;) }) (else_clause "else {\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }" else (compound_statement "{\n                      value = 0x80;\n                      local_78 = tmpbuf + 1;\n                      tmpbuf[0] = *pcVar20;\n                    }" { (expression_statement "value = 0x80;" (assignment_expression "value = 0x80" identifier = number_literal) ;) (expression_statement "local_78 = tmpbuf + 1;" (assignment_expression "local_78 = tmpbuf + 1" identifier = (binary_expression "tmpbuf + 1" identifier + number_literal)) ;) (expression_statement "tmpbuf[0] = *pcVar20;" (assignment_expression "tmpbuf[0] = *pcVar20" (subscript_expression "tmpbuf[0]" identifier [ number_literal ]) = (pointer_expression "*pcVar20" * identifier)) ;) }))) (if_statement "if (sVar29 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" if (parenthesized_expression "(sVar29 != 1)" ( (binary_expression "sVar29 != 1" identifier != number_literal) )) (compound_statement "{\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }\n                      local_78 = local_b0;\n                      if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" { (expression_statement "local_b0 = local_78;" (assignment_expression "local_b0 = local_78" identifier = identifier) ;) (if_statement "if (pcVar1[1] != pcVar20[1]) {\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }" if (parenthesized_expression "(pcVar1[1] != pcVar20[1])" ( (binary_expression "pcVar1[1] != pcVar20[1]" (subscript_expression "pcVar1[1]" identifier [ number_literal ]) != (subscript_expression "pcVar20[1]" identifier [ number_literal ])) )) (compound_statement "{\n                        local_b0 = local_78 + 1;\n                        value = value | 0x40;\n                        *local_78 = pcVar20[1];\n                      }" { (expression_statement "local_b0 = local_78 + 1;" (assignment_expression "local_b0 = local_78 + 1" identifier = (binary_expression "local_78 + 1" identifier + number_literal)) ;) (expression_statement "value = value | 0x40;" (assignment_expression "value = value | 0x40" identifier = (binary_expression "value | 0x40" identifier | number_literal)) ;) (expression_statement "*local_78 = pcVar20[1];" (assignment_expression "*local_78 = pcVar20[1]" (pointer_expression "*local_78" * identifier) = (subscript_expression "pcVar20[1]" identifier [ number_literal ])) ;) })) (expression_statement "local_78 = local_b0;" (assignment_expression "local_78 = local_b0" identifier = identifier) ;) (if_statement "if (sVar29 != 2) {\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" if (parenthesized_expression "(sVar29 != 2)" ( (binary_expression "sVar29 != 2" identifier != number_literal) )) (compound_statement "{\n                        if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }\n                        if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" { (if_statement "if (pcVar1[2] != pcVar20[2]) {\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }" if (parenthesized_expression "(pcVar1[2] != pcVar20[2])" ( (binary_expression "pcVar1[2] != pcVar20[2]" (subscript_expression "pcVar1[2]" identifier [ number_literal ]) != (subscript_expression "pcVar20[2]" identifier [ number_literal ])) )) (compound_statement "{\n                          value = value | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar20[2];\n                        }" { (expression_statement "value = value | 0x20;" (assignment_expression "value = value | 0x20" identifier = (binary_expression "value | 0x20" identifier | number_literal)) ;) (expression_statement "local_78 = local_b0 + 1;" (assignment_expression "local_78 = local_b0 + 1" identifier = (binary_expression "local_b0 + 1" identifier + number_literal)) ;) (expression_statement "*local_b0 = pcVar20[2];" (assignment_expression "*local_b0 = pcVar20[2]" (pointer_expression "*local_b0" * identifier) = (subscript_expression "pcVar20[2]" identifier [ number_literal ])) ;) })) (if_statement "if (sVar29 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }" if (parenthesized_expression "(sVar29 != 3)" ( (binary_expression "sVar29 != 3" identifier != number_literal) )) (compound_statement "{\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }\n                          local_78 = local_b0;\n                          if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }" { (expression_statement "local_b0 = local_78;" (assignment_expression "local_b0 = local_78" identifier = identifier) ;) (if_statement "if (pcVar1[3] != pcVar20[3]) {\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }" if (parenthesized_expression "(pcVar1[3] != pcVar20[3])" ( (binary_expression "pcVar1[3] != pcVar20[3]" (subscript_expression "pcVar1[3]" identifier [ number_literal ]) != (subscript_expression "pcVar20[3]" identifier [ number_literal ])) )) (compound_statement "{\n                            local_b0 = local_78 + 1;\n                            value = value | 0x10;\n                            *local_78 = pcVar20[3];\n                          }" { (expression_statement "local_b0 = local_78 + 1;" (assignment_expression "local_b0 = local_78 + 1" identifier = (binary_expression "local_78 + 1" identifier + number_literal)) ;) (expression_statement "value = value | 0x10;" (assignment_expression "value = value | 0x10" identifier = (binary_expression "value | 0x10" identifier | number_literal)) ;) (expression_statement "*local_78 = pcVar20[3];" (assignment_expression "*local_78 = pcVar20[3]" (pointer_expression "*local_78" * identifier) = (subscript_expression "pcVar20[3]" identifier [ number_literal ])) ;) })) (expression_statement "local_78 = local_b0;" (assignment_expression "local_78 = local_b0" identifier = identifier) ;) (if_statement "if (sVar29 != 4) {\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }" if (parenthesized_expression "(sVar29 != 4)" ( (binary_expression "sVar29 != 4" identifier != number_literal) )) (compound_statement "{\n                            if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }\n                            if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }" { (if_statement "if (pcVar1[4] != pcVar20[4]) {\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }" if (parenthesized_expression "(pcVar1[4] != pcVar20[4])" ( (binary_expression "pcVar1[4] != pcVar20[4]" (subscript_expression "pcVar1[4]" identifier [ number_literal ]) != (subscript_expression "pcVar20[4]" identifier [ number_literal ])) )) (compound_statement "{\n                              value = value | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar20[4];\n                            }" { (expression_statement "value = value | 8;" (assignment_expression "value = value | 8" identifier = (binary_expression "value | 8" identifier | number_literal)) ;) (expression_statement "local_78 = local_b0 + 1;" (assignment_expression "local_78 = local_b0 + 1" identifier = (binary_expression "local_b0 + 1" identifier + number_literal)) ;) (expression_statement "*local_b0 = pcVar20[4];" (assignment_expression "*local_b0 = pcVar20[4]" (pointer_expression "*local_b0" * identifier) = (subscript_expression "pcVar20[4]" identifier [ number_literal ])) ;) })) (if_statement "if (sVar29 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }" if (parenthesized_expression "(sVar29 != 5)" ( (binary_expression "sVar29 != 5" identifier != number_literal) )) (compound_statement "{\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }\n                              local_78 = local_b0;\n                              if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }" { (expression_statement "local_b0 = local_78;" (assignment_expression "local_b0 = local_78" identifier = identifier) ;) (if_statement "if (pcVar1[5] != pcVar20[5]) {\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }" if (parenthesized_expression "(pcVar1[5] != pcVar20[5])" ( (binary_expression "pcVar1[5] != pcVar20[5]" (subscript_expression "pcVar1[5]" identifier [ number_literal ]) != (subscript_expression "pcVar20[5]" identifier [ number_literal ])) )) (compound_statement "{\n                                local_b0 = local_78 + 1;\n                                value = value | 4;\n                                *local_78 = pcVar20[5];\n                              }" { (expression_statement "local_b0 = local_78 + 1;" (assignment_expression "local_b0 = local_78 + 1" identifier = (binary_expression "local_78 + 1" identifier + number_literal)) ;) (expression_statement "value = value | 4;" (assignment_expression "value = value | 4" identifier = (binary_expression "value | 4" identifier | number_literal)) ;) (expression_statement "*local_78 = pcVar20[5];" (assignment_expression "*local_78 = pcVar20[5]" (pointer_expression "*local_78" * identifier) = (subscript_expression "pcVar20[5]" identifier [ number_literal ])) ;) })) (expression_statement "local_78 = local_b0;" (assignment_expression "local_78 = local_b0" identifier = identifier) ;) (if_statement "if (sVar29 != 6) {\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }" if (parenthesized_expression "(sVar29 != 6)" ( (binary_expression "sVar29 != 6" identifier != number_literal) )) (compound_statement "{\n                                if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }\n                                if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }" { (if_statement "if (pcVar1[6] != pcVar20[6]) {\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }" if (parenthesized_expression "(pcVar1[6] != pcVar20[6])" ( (binary_expression "pcVar1[6] != pcVar20[6]" (subscript_expression "pcVar1[6]" identifier [ number_literal ]) != (subscript_expression "pcVar20[6]" identifier [ number_literal ])) )) (compound_statement "{\n                                  value = value | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar20[6];\n                                }" { (expression_statement "value = value | 2;" (assignment_expression "value = value | 2" identifier = (binary_expression "value | 2" identifier | number_literal)) ;) (expression_statement "local_78 = local_b0 + 1;" (assignment_expression "local_78 = local_b0 + 1" identifier = (binary_expression "local_b0 + 1" identifier + number_literal)) ;) (expression_statement "*local_b0 = pcVar20[6];" (assignment_expression "*local_b0 = pcVar20[6]" (pointer_expression "*local_b0" * identifier) = (subscript_expression "pcVar20[6]" identifier [ number_literal ])) ;) })) (if_statement "if ((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])) {\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }" if (parenthesized_expression "((7 < (int)sVar29) && (pcVar1[7] != pcVar20[7]))" ( (binary_expression "(7 < (int)sVar29) && (pcVar1[7] != pcVar20[7])" (parenthesized_expression "(7 < (int)sVar29)" ( (binary_expression "7 < (int)sVar29" number_literal < (cast_expression "(int)sVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(pcVar1[7] != pcVar20[7])" ( (binary_expression "pcVar1[7] != pcVar20[7]" (subscript_expression "pcVar1[7]" identifier [ number_literal ]) != (subscript_expression "pcVar20[7]" identifier [ number_literal ])) ))) )) (compound_statement "{\n                                  value = value | 1;\n                                  *local_78 = pcVar20[7];\n                                  local_78 = local_78 + 1;\n                                }" { (expression_statement "value = value | 1;" (assignment_expression "value = value | 1" identifier = (binary_expression "value | 1" identifier | number_literal)) ;) (expression_statement "*local_78 = pcVar20[7];" (assignment_expression "*local_78 = pcVar20[7]" (pointer_expression "*local_78" * identifier) = (subscript_expression "pcVar20[7]" identifier [ number_literal ])) ;) (expression_statement "local_78 = local_78 + 1;" (assignment_expression "local_78 = local_78 + 1" identifier = (binary_expression "local_78 + 1" identifier + number_literal)) ;) })) })) })) })) })) })) })) }))) (expression_statement "sVar29 = sVar29 - 8;" (assignment_expression "sVar29 = sVar29 - 8" identifier = (binary_expression "sVar29 - 8" identifier - number_literal)) ;) (expression_statement "WriteBlobByte(image,value);" (call_expression "WriteBlobByte(image,value)" identifier (argument_list "(image,value)" ( identifier , identifier ))) ;) (expression_statement "WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf);" (call_expression "WriteBlob(image,(int)local_78 - (int)tmpbuf,tmpbuf)" identifier (argument_list "(image,(int)local_78 - (int)tmpbuf,tmpbuf)" ( identifier , (binary_expression "(int)local_78 - (int)tmpbuf" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)tmpbuf" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier ))) ;) (expression_statement "pcVar1 = pcVar1 + 8;" (assignment_expression "pcVar1 = pcVar1 + 8" identifier = (binary_expression "pcVar1 + 8" identifier + number_literal)) ;) (expression_statement "pcVar20 = pcVar20 + 8;" (assignment_expression "pcVar20 = pcVar20 + 8" identifier = (binary_expression "pcVar20 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "((sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29)" ( (binary_expression "(sVar13 - 8) - (sVar13 - 1 & 0xfffffff8) != sVar29" (binary_expression "(sVar13 - 8) - (sVar13 - 1 & 0xfffffff8)" (parenthesized_expression "(sVar13 - 8)" ( (binary_expression "sVar13 - 8" identifier - number_literal) )) - (parenthesized_expression "(sVar13 - 1 & 0xfffffff8)" ( (binary_expression "sVar13 - 1 & 0xfffffff8" (binary_expression "sVar13 - 1" identifier - number_literal) & number_literal) ))) != identifier) )) ;) })) (expression_statement "memcpy(local_7c,__s,sVar13);" (call_expression "memcpy(local_7c,__s,sVar13)" identifier (argument_list "(local_7c,__s,sVar13)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n              WriteBlob(image,sVar13,__s);\n            }" else (compound_statement "{\n              WriteBlob(image,sVar13,__s);\n            }" { (expression_statement "WriteBlob(image,sVar13,__s);" (call_expression "WriteBlob(image,sVar13,__s)" identifier (argument_list "(image,sVar13,__s)" ( identifier , identifier , identifier ))) ;) })))) }))) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 < (int)image->rows)" ( (binary_expression "iVar24 < (int)image->rows" identifier < (cast_expression "(int)image->rows" ( (type_descriptor "int" primitive_type) ) (field_expression "image->rows" identifier -> field_identifier))) )) ;) })) (if_statement "if ((local_48 & 0x2000) != 0) {\n        SeekBlob(image,local_74 + 6,0);\n        WriteBlobMSBShort(image,local_48);\n        local_64 = SeekBlob(image,local_74 + 0xc,0);\n        WriteBlobByte(image,'\0');\n      }" if (parenthesized_expression "((local_48 & 0x2000) != 0)" ( (binary_expression "(local_48 & 0x2000) != 0" (parenthesized_expression "(local_48 & 0x2000)" ( (binary_expression "local_48 & 0x2000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        SeekBlob(image,local_74 + 6,0);\n        WriteBlobMSBShort(image,local_48);\n        local_64 = SeekBlob(image,local_74 + 0xc,0);\n        WriteBlobByte(image,'\0');\n      }" { (expression_statement "SeekBlob(image,local_74 + 6,0);" (call_expression "SeekBlob(image,local_74 + 6,0)" identifier (argument_list "(image,local_74 + 6,0)" ( identifier , (binary_expression "local_74 + 6" identifier + number_literal) , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(image,local_48);" (call_expression "WriteBlobMSBShort(image,local_48)" identifier (argument_list "(image,local_48)" ( identifier , identifier ))) ;) (expression_statement "local_64 = SeekBlob(image,local_74 + 0xc,0);" (assignment_expression "local_64 = SeekBlob(image,local_74 + 0xc,0)" identifier = (call_expression "SeekBlob(image,local_74 + 0xc,0)" identifier (argument_list "(image,local_74 + 0xc,0)" ( identifier , (binary_expression "local_74 + 0xc" identifier + number_literal) , number_literal )))) ;) (expression_statement "WriteBlobByte(image,'\0');" (call_expression "WriteBlobByte(image,'\0')" identifier (argument_list "(image,'\0')" ( identifier , (char_literal "'\0'" ' escape_sequence ') ))) ;) })) (if_statement "if (local_a0 == 0x10) {\n        local_64 = SeekBlob(image,local_74 + 0x14,0);\n        WriteBlobByte(image,'\0');\n        dVar2 = (double)DAT_00306a38;\n        dVar3 = (double)DAT_002df8a8;\n        WriteBlobByte(image,(uchar)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(image,(uchar)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar3));\n        WriteBlobByte(image,(uchar)(short)ROUND((dVar2 * local_8c) / dVar3));\n      }" if (parenthesized_expression "(local_a0 == 0x10)" ( (binary_expression "local_a0 == 0x10" identifier == number_literal) )) (compound_statement "{\n        local_64 = SeekBlob(image,local_74 + 0x14,0);\n        WriteBlobByte(image,'\0');\n        dVar2 = (double)DAT_00306a38;\n        dVar3 = (double)DAT_002df8a8;\n        WriteBlobByte(image,(uchar)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(image,(uchar)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar3));\n        WriteBlobByte(image,(uchar)(short)ROUND((dVar2 * local_8c) / dVar3));\n      }" { (expression_statement "local_64 = SeekBlob(image,local_74 + 0x14,0);" (assignment_expression "local_64 = SeekBlob(image,local_74 + 0x14,0)" identifier = (call_expression "SeekBlob(image,local_74 + 0x14,0)" identifier (argument_list "(image,local_74 + 0x14,0)" ( identifier , (binary_expression "local_74 + 0x14" identifier + number_literal) , number_literal )))) ;) (expression_statement "WriteBlobByte(image,'\0');" (call_expression "WriteBlobByte(image,'\0')" identifier (argument_list "(image,'\0')" ( identifier , (char_literal "'\0'" ' escape_sequence ') ))) ;) (expression_statement "dVar2 = (double)DAT_00306a38;" (assignment_expression "dVar2 = (double)DAT_00306a38" identifier = (cast_expression "(double)DAT_00306a38" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "dVar3 = (double)DAT_002df8a8;" (assignment_expression "dVar3 = (double)DAT_002df8a8" identifier = (cast_expression "(double)DAT_002df8a8" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "WriteBlobByte(image,(uchar)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));" (call_expression "WriteBlobByte(image,(uchar)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8))" identifier (argument_list "(image,(uchar)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8))" ( identifier , (cast_expression "(uchar)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8)" ( (type_descriptor "uchar" type_identifier) ) (cast_expression "(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8)" identifier (argument_list "(((float)local_94 * DAT_00306a38) / DAT_002df8a8)" ( (binary_expression "((float)local_94 * DAT_00306a38) / DAT_002df8a8" (parenthesized_expression "((float)local_94 * DAT_00306a38)" ( (binary_expression "(float)local_94 * DAT_00306a38" (cast_expression "(float)local_94" ( (type_descriptor "float" primitive_type) ) identifier) * identifier) )) / identifier) ))))) ))) ;) (expression_statement "WriteBlobByte(image,(uchar)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar3));" (call_expression "WriteBlobByte(image,(uchar)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar3))" identifier (argument_list "(image,(uchar)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar3))" ( identifier , (cast_expression "(uchar)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar3)" ( (type_descriptor "uchar" type_identifier) ) (cast_expression "(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar3)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND((local_84 * (double)DAT_0030d3a4) / dVar3)" identifier (argument_list "((local_84 * (double)DAT_0030d3a4) / dVar3)" ( (binary_expression "(local_84 * (double)DAT_0030d3a4) / dVar3" (parenthesized_expression "(local_84 * (double)DAT_0030d3a4)" ( (binary_expression "local_84 * (double)DAT_0030d3a4" identifier * (cast_expression "(double)DAT_0030d3a4" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier) ))))) ))) ;) (expression_statement "WriteBlobByte(image,(uchar)(short)ROUND((dVar2 * local_8c) / dVar3));" (call_expression "WriteBlobByte(image,(uchar)(short)ROUND((dVar2 * local_8c) / dVar3))" identifier (argument_list "(image,(uchar)(short)ROUND((dVar2 * local_8c) / dVar3))" ( identifier , (cast_expression "(uchar)(short)ROUND((dVar2 * local_8c) / dVar3)" ( (type_descriptor "uchar" type_identifier) ) (cast_expression "(short)ROUND((dVar2 * local_8c) / dVar3)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND((dVar2 * local_8c) / dVar3)" identifier (argument_list "((dVar2 * local_8c) / dVar3)" ( (binary_expression "(dVar2 * local_8c) / dVar3" (parenthesized_expression "(dVar2 * local_8c)" ( (binary_expression "dVar2 * local_8c" identifier * identifier) )) / identifier) ))))) ))) ;) })) (if_statement "if ((short)local_48 < 0) {\n        MVar32 = SeekBlob(image,local_74 + local_64,0);\n        MVar31 = GetBlobSize(image);\n        WriteBlobMSBShort(image,((short)MVar31 - (short)local_74) - (short)MVar32);\n      }" if (parenthesized_expression "((short)local_48 < 0)" ( (binary_expression "(short)local_48 < 0" (cast_expression "(short)local_48" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) < number_literal) )) (compound_statement "{\n        MVar32 = SeekBlob(image,local_74 + local_64,0);\n        MVar31 = GetBlobSize(image);\n        WriteBlobMSBShort(image,((short)MVar31 - (short)local_74) - (short)MVar32);\n      }" { (expression_statement "MVar32 = SeekBlob(image,local_74 + local_64,0);" (assignment_expression "MVar32 = SeekBlob(image,local_74 + local_64,0)" identifier = (call_expression "SeekBlob(image,local_74 + local_64,0)" identifier (argument_list "(image,local_74 + local_64,0)" ( identifier , (binary_expression "local_74 + local_64" identifier + identifier) , number_literal )))) ;) (expression_statement "MVar31 = GetBlobSize(image);" (assignment_expression "MVar31 = GetBlobSize(image)" identifier = (call_expression "GetBlobSize(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "WriteBlobMSBShort(image,((short)MVar31 - (short)local_74) - (short)MVar32);" (call_expression "WriteBlobMSBShort(image,((short)MVar31 - (short)local_74) - (short)MVar32)" identifier (argument_list "(image,((short)MVar31 - (short)local_74) - (short)MVar32)" ( identifier , (binary_expression "((short)MVar31 - (short)local_74) - (short)MVar32" (parenthesized_expression "((short)MVar31 - (short)local_74)" ( (binary_expression "(short)MVar31 - (short)local_74" (cast_expression "(short)MVar31" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) - (cast_expression "(short)local_74" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) )) - (cast_expression "(short)MVar32" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ))) ;) })) (expression_statement "RelinquishMagickMemory(__s);" (call_expression "RelinquishMagickMemory(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (if_statement "if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }" if (parenthesized_expression "(local_7c != (char *)0x0)" ( (binary_expression "local_7c != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        RelinquishMagickMemory(local_7c);\n      }" { (expression_statement "RelinquishMagickMemory(local_7c);" (call_expression "RelinquishMagickMemory(local_7c)" identifier (argument_list "(local_7c)" ( identifier ))) ;) })) (expression_statement "pIVar17 = GetNextImageInList(image);" (assignment_expression "pIVar17 = GetNextImageInList(image)" identifier = (call_expression "GetNextImageInList(image)" identifier (argument_list "(image)" ( identifier )))) ;) (if_statement "if (pIVar17 == (Image *)0x0) goto LAB_00261e48;" 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)) )) (goto_statement "goto LAB_00261e48;" goto statement_identifier ;)) (expression_statement "MVar31 = GetBlobSize(image);" (assignment_expression "MVar31 = GetBlobSize(image)" identifier = (call_expression "GetBlobSize(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "uVar18 = (uint)MVar31 & 3;" (assignment_expression "uVar18 = (uint)MVar31 & 3" identifier = (binary_expression "(uint)MVar31 & 3" (cast_expression "(uint)MVar31" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (if_statement "if ((MVar31 & 3) != 0) {\n        do {\n          WriteBlobByte(image,'\0');\n          bVar30 = uVar18 != 0;\n          uVar18 = uVar18 - 1;\n          iVar24 = iVar24 + -1 + (uint)bVar30;\n        } while (iVar24 != 0 || uVar18 != 0);\n      }" if (parenthesized_expression "((MVar31 & 3) != 0)" ( (binary_expression "(MVar31 & 3) != 0" (parenthesized_expression "(MVar31 & 3)" ( (binary_expression "MVar31 & 3" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        do {\n          WriteBlobByte(image,'\0');\n          bVar30 = uVar18 != 0;\n          uVar18 = uVar18 - 1;\n          iVar24 = iVar24 + -1 + (uint)bVar30;\n        } while (iVar24 != 0 || uVar18 != 0);\n      }" { (do_statement "do {\n          WriteBlobByte(image,'\0');\n          bVar30 = uVar18 != 0;\n          uVar18 = uVar18 - 1;\n          iVar24 = iVar24 + -1 + (uint)bVar30;\n        } while (iVar24 != 0 || uVar18 != 0);" do (compound_statement "{\n          WriteBlobByte(image,'\0');\n          bVar30 = uVar18 != 0;\n          uVar18 = uVar18 - 1;\n          iVar24 = iVar24 + -1 + (uint)bVar30;\n        }" { (expression_statement "WriteBlobByte(image,'\0');" (call_expression "WriteBlobByte(image,'\0')" identifier (argument_list "(image,'\0')" ( identifier , (char_literal "'\0'" ' escape_sequence ') ))) ;) (expression_statement "bVar30 = uVar18 != 0;" (assignment_expression "bVar30 = uVar18 != 0" identifier = (binary_expression "uVar18 != 0" identifier != number_literal)) ;) (expression_statement "uVar18 = uVar18 - 1;" (assignment_expression "uVar18 = uVar18 - 1" identifier = (binary_expression "uVar18 - 1" identifier - number_literal)) ;) (expression_statement "iVar24 = iVar24 + -1 + (uint)bVar30;" (assignment_expression "iVar24 = iVar24 + -1 + (uint)bVar30" identifier = (binary_expression "iVar24 + -1 + (uint)bVar30" (binary_expression "iVar24 + -1" identifier + number_literal) + (cast_expression "(uint)bVar30" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "(iVar24 != 0 || uVar18 != 0)" ( (binary_expression "iVar24 != 0 || uVar18 != 0" (binary_expression "iVar24 != 0" identifier != number_literal) || (binary_expression "uVar18 != 0" identifier != number_literal)) )) ;) })) (expression_statement "SeekBlob(image,local_74 + 10,0);" (call_expression "SeekBlob(image,local_74 + 10,0)" identifier (argument_list "(image,local_74 + 10,0)" ( identifier , (binary_expression "local_74 + 10" identifier + number_literal) , number_literal ))) ;) (expression_statement "MVar31 = GetBlobSize(image);" (assignment_expression "MVar31 = GetBlobSize(image)" identifier = (call_expression "GetBlobSize(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "WriteBlobMSBShort(image,(ushort)((uint)(MVar31 - local_74) >> 2));" (call_expression "WriteBlobMSBShort(image,(ushort)((uint)(MVar31 - local_74) >> 2))" identifier (argument_list "(image,(ushort)((uint)(MVar31 - local_74) >> 2))" ( identifier , (call_expression "(ushort)((uint)(MVar31 - local_74) >> 2)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((uint)(MVar31 - local_74) >> 2)" ( (binary_expression "(uint)(MVar31 - local_74) >> 2" (call_expression "(uint)(MVar31 - local_74)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(MVar31 - local_74)" ( (binary_expression "MVar31 - local_74" identifier - identifier) ))) >> number_literal) ))) ))) ;) (expression_statement "local_74 = GetBlobSize(image);" (assignment_expression "local_74 = GetBlobSize(image)" identifier = (call_expression "GetBlobSize(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "SeekBlob(image,local_74,0);" (call_expression "SeekBlob(image,local_74,0)" identifier (argument_list "(image,local_74,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "image = SyncNextImageInList(image);" (assignment_expression "image = SyncNextImageInList(image)" identifier = (call_expression "SyncNextImageInList(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "bVar30 = 0xfffffffe < local_54;" (assignment_expression "bVar30 = 0xfffffffe < local_54" identifier = (binary_expression "0xfffffffe < local_54" number_literal < identifier)) ;) (expression_statement "MVar11 = SetImageProgress(image,"Save/Images",CONCAT44(local_50,local_54),(ulonglong)sVar12);" (assignment_expression "MVar11 = SetImageProgress(image,"Save/Images",CONCAT44(local_50,local_54),(ulonglong)sVar12)" identifier = (call_expression "SetImageProgress(image,"Save/Images",CONCAT44(local_50,local_54),(ulonglong)sVar12)" identifier (argument_list "(image,"Save/Images",CONCAT44(local_50,local_54),(ulonglong)sVar12)" ( identifier , (string_literal ""Save/Images"" " string_content ") , (call_expression "CONCAT44(local_50,local_54)" identifier (argument_list "(local_50,local_54)" ( identifier , identifier ))) , (cast_expression "(ulonglong)sVar12" ( (type_descriptor "ulonglong" type_identifier) ) identifier) )))) ;) (if_statement "if ((MVar11 == MagickFalse) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30,\n         image_info->adjoin == MagickFalse)) goto LAB_00261e48;" if (parenthesized_expression "((MVar11 == MagickFalse) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30,\n         image_info->adjoin == MagickFalse))" ( (binary_expression "(MVar11 == MagickFalse) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30,\n         image_info->adjoin == MagickFalse)" (parenthesized_expression "(MVar11 == MagickFalse)" ( (binary_expression "MVar11 == MagickFalse" identifier == identifier) )) || (parenthesized_expression "(local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30,\n         image_info->adjoin == MagickFalse)" ( (comma_expression "local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30,\n         image_info->adjoin == MagickFalse" (assignment_expression "local_54 = local_54 + 1" identifier = (binary_expression "local_54 + 1" identifier + number_literal)) , (comma_expression "local_50 = local_50 + (uint)bVar30,\n         image_info->adjoin == MagickFalse" (assignment_expression "local_50 = local_50 + (uint)bVar30" identifier = (binary_expression "local_50 + (uint)bVar30" identifier + (cast_expression "(uint)bVar30" ( (type_descriptor "uint" type_identifier) ) identifier))) , (binary_expression "image_info->adjoin == MagickFalse" (field_expression "image_info->adjoin" identifier -> field_identifier) == identifier))) ))) )) (goto_statement "goto LAB_00261e48;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (labeled_statement "LAB_00260565:\n  if (iVar4 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" statement_identifier : (if_statement "if (iVar4 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(iVar4 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar4 != *(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                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return MVar11;" return identifier ;) (labeled_statement "LAB_00261ad3:\n  dVar2 = (double)iVar24;" statement_identifier : (expression_statement "dVar2 = (double)iVar24;" (assignment_expression "dVar2 = (double)iVar24" identifier = (cast_expression "(double)iVar24" ( (type_descriptor "double" primitive_type) ) identifier)) ;)) (labeled_statement "LAB_00261adb:\n  if (PVar7 != UndefinedPixelTrait) {\n    pQVar14[pPVar5[5].offset] = dVar2;\n  }" statement_identifier : (if_statement "if (PVar7 != UndefinedPixelTrait) {\n    pQVar14[pPVar5[5].offset] = dVar2;\n  }" if (parenthesized_expression "(PVar7 != UndefinedPixelTrait)" ( (binary_expression "PVar7 != UndefinedPixelTrait" identifier != identifier) )) (compound_statement "{\n    pQVar14[pPVar5[5].offset] = dVar2;\n  }" { (expression_statement "pQVar14[pPVar5[5].offset] = dVar2;" (assignment_expression "pQVar14[pPVar5[5].offset] = dVar2" (subscript_expression "pQVar14[pPVar5[5].offset]" identifier [ (field_expression "pPVar5[5].offset" (subscript_expression "pPVar5[5]" identifier [ number_literal ]) . field_identifier) ]) = identifier) ;) }))) (expression_statement "local_d4 = local_d4 + 1;" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) ;) (expression_statement "pQVar14 = pQVar14 + sVar25;" (assignment_expression "pQVar14 = pQVar14 + sVar25" identifier = (binary_expression "pQVar14 + sVar25" identifier + identifier)) ;) (if_statement "if (local_d4 == sVar29) goto LAB_00261b09;" if (parenthesized_expression "(local_d4 == sVar29)" ( (binary_expression "local_d4 == sVar29" identifier == identifier) )) (goto_statement "goto LAB_00261b09;" goto statement_identifier ;)) (goto_statement "goto LAB_002618c8;" goto statement_identifier ;) (labeled_statement "LAB_00261e48:\n  DestroyQuantizeInfo(quantize_info);" statement_identifier : (expression_statement "DestroyQuantizeInfo(quantize_info);" (call_expression "DestroyQuantizeInfo(quantize_info)" identifier (argument_list "(quantize_info)" ( 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_00260565;" goto statement_identifier ;) })))
(translation_unit "int FUN_00260480(int *param_1,int *param_2,uint param_3)\n\n{\n  char *pcVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  byte bVar10;\n  undefined1 uVar11;\n  short sVar12;\n  short sVar13;\n  int iVar14;\n  int *piVar15;\n  undefined4 uVar16;\n  uint uVar17;\n  char *pcVar18;\n  int iVar19;\n  int iVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  char *pcVar24;\n  int iVar25;\n  int iVar26;\n  char cVar27;\n  uint uVar28;\n  int *piVar29;\n  int in_GS_OFFSET;\n  bool bVar30;\n  longlong lVar31;\n  longlong lVar32;\n  uint local_d4;\n  ulonglong local_cc;\n  char *local_b8;\n  byte local_b4;\n  char *local_b0;\n  uint local_ac;\n  uint local_a0;\n  char *local_9c;\n  double local_94;\n  double local_8c;\n  double local_84;\n  char *local_7c;\n  char *local_78;\n  int local_74;\n  int local_64;\n  uint local_60;\n  uint local_54;\n  int local_50;\n  ushort local_48;\n  undefined1 local_46;\n  byte local_45;\n  char local_28 [4];\n  char local_24;\n  char local_23;\n  char local_22;\n  char local_21;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == (int *)0x0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/palm.c",0x2ed,"WritePALMImage");\n  }\n  if (param_1[0xc7d] != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage");\n  }\n  if (param_2 == (int *)0x0) {\n                    \n    __assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");\n  }\n  if (param_2[0xcd1] != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");\n  }\n  if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6);\n  }\n  if (param_3 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");\n  }\n  if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage");\n  }\n  uVar21 = param_3;\n  iVar14 = OpenBlob(param_1,param_2,4,param_3);\n  if (iVar14 != 0) {\n    piVar15 = (int *)AcquireQuantizeInfo(param_1);\n    uVar16 = GetImageListLength(param_2);\n    local_8c = 0.0;\n    local_48 = 0;\n    local_84 = 0.0;\n    local_46 = 0;\n    local_94 = 0.0;\n    local_54 = 0;\n    local_50 = 0;\n    lVar31 = 0;\n    do {\n      local_74 = (int)lVar31;\n      iVar14 = local_74;\n      TransformImageColorspace(param_2,0x17,param_3);\n      uVar17 = GetNumberColors(param_2,0,param_3);\n      local_a0 = 1;\n      if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(param_2,(short)param_2[6]);\n      WriteBlobMSBShort(param_2,(short)param_2[7]);\n      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(param_2,uVar21 & 0xffff);\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(param_2,local_48);\n      WriteBlobByte(param_2,local_a0);\n      if (1 < local_a0) {\n        local_46 = 1;\n      }\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }\n      WriteBlobByte(param_2,local_46);\n      WriteBlobMSBShort(param_2,0);\n      WriteBlobByte(param_2,0);\n      if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }\n      WriteBlobMSBShort(param_2,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }\n      lVar32 = CONCAT44(local_60,local_64);\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }\n      local_7c = (char *)0x0;\n      piVar29 = param_2;\n      if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }\n      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);\n      if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }\n      if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }\n      if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }\n      RelinquishMagickMemory(pcVar18);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      iVar20 = GetNextImageInList(param_2);\n      if (iVar20 == 0) goto LAB_00261e48;\n      uVar21 = GetBlobSize(param_2);\n      uVar21 = uVar21 & 3;\n      iVar20 = 0;\n      if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }\n      SeekBlob(param_2,lVar31 + 10,0);\n      iVar20 = GetBlobSize(param_2);\n      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);\n      lVar31 = GetBlobSize(param_2);\n      uVar21 = 0;\n      SeekBlob(param_2,lVar31);\n      param_2 = (int *)SyncNextImageInList(param_2);\n      bVar30 = 0xfffffffe < local_54;\n      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);\n      if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;\n    } while( true );\n  }\nLAB_00260565:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_002decd0();\n  }\n  return iVar14;\nLAB_00261ad3:\n  dVar2 = (double)iVar22;\nLAB_00261adb:\n  if (iVar8 != 0) {\n    *(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;\n  }\n  local_d4 = local_d4 + 1;\n  iVar25 = iVar25 + iVar7 * 8;\n  if (local_d4 == iVar19) goto LAB_00261b09;\n  goto LAB_002618c8;\nLAB_00261e48:\n  DestroyQuantizeInfo(piVar15);\n  CloseBlob(param_2);\n  iVar14 = 1;\n  goto LAB_00260565;\n}\n\n" (function_definition "int FUN_00260480(int *param_1,int *param_2,uint param_3)\n\n{\n  char *pcVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  byte bVar10;\n  undefined1 uVar11;\n  short sVar12;\n  short sVar13;\n  int iVar14;\n  int *piVar15;\n  undefined4 uVar16;\n  uint uVar17;\n  char *pcVar18;\n  int iVar19;\n  int iVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  char *pcVar24;\n  int iVar25;\n  int iVar26;\n  char cVar27;\n  uint uVar28;\n  int *piVar29;\n  int in_GS_OFFSET;\n  bool bVar30;\n  longlong lVar31;\n  longlong lVar32;\n  uint local_d4;\n  ulonglong local_cc;\n  char *local_b8;\n  byte local_b4;\n  char *local_b0;\n  uint local_ac;\n  uint local_a0;\n  char *local_9c;\n  double local_94;\n  double local_8c;\n  double local_84;\n  char *local_7c;\n  char *local_78;\n  int local_74;\n  int local_64;\n  uint local_60;\n  uint local_54;\n  int local_50;\n  ushort local_48;\n  undefined1 local_46;\n  byte local_45;\n  char local_28 [4];\n  char local_24;\n  char local_23;\n  char local_22;\n  char local_21;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == (int *)0x0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/palm.c",0x2ed,"WritePALMImage");\n  }\n  if (param_1[0xc7d] != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage");\n  }\n  if (param_2 == (int *)0x0) {\n                    \n    __assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");\n  }\n  if (param_2[0xcd1] != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");\n  }\n  if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6);\n  }\n  if (param_3 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");\n  }\n  if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage");\n  }\n  uVar21 = param_3;\n  iVar14 = OpenBlob(param_1,param_2,4,param_3);\n  if (iVar14 != 0) {\n    piVar15 = (int *)AcquireQuantizeInfo(param_1);\n    uVar16 = GetImageListLength(param_2);\n    local_8c = 0.0;\n    local_48 = 0;\n    local_84 = 0.0;\n    local_46 = 0;\n    local_94 = 0.0;\n    local_54 = 0;\n    local_50 = 0;\n    lVar31 = 0;\n    do {\n      local_74 = (int)lVar31;\n      iVar14 = local_74;\n      TransformImageColorspace(param_2,0x17,param_3);\n      uVar17 = GetNumberColors(param_2,0,param_3);\n      local_a0 = 1;\n      if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(param_2,(short)param_2[6]);\n      WriteBlobMSBShort(param_2,(short)param_2[7]);\n      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(param_2,uVar21 & 0xffff);\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(param_2,local_48);\n      WriteBlobByte(param_2,local_a0);\n      if (1 < local_a0) {\n        local_46 = 1;\n      }\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }\n      WriteBlobByte(param_2,local_46);\n      WriteBlobMSBShort(param_2,0);\n      WriteBlobByte(param_2,0);\n      if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }\n      WriteBlobMSBShort(param_2,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }\n      lVar32 = CONCAT44(local_60,local_64);\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }\n      local_7c = (char *)0x0;\n      piVar29 = param_2;\n      if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }\n      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);\n      if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }\n      if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }\n      if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }\n      RelinquishMagickMemory(pcVar18);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      iVar20 = GetNextImageInList(param_2);\n      if (iVar20 == 0) goto LAB_00261e48;\n      uVar21 = GetBlobSize(param_2);\n      uVar21 = uVar21 & 3;\n      iVar20 = 0;\n      if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }\n      SeekBlob(param_2,lVar31 + 10,0);\n      iVar20 = GetBlobSize(param_2);\n      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);\n      lVar31 = GetBlobSize(param_2);\n      uVar21 = 0;\n      SeekBlob(param_2,lVar31);\n      param_2 = (int *)SyncNextImageInList(param_2);\n      bVar30 = 0xfffffffe < local_54;\n      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);\n      if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;\n    } while( true );\n  }\nLAB_00260565:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_002decd0();\n  }\n  return iVar14;\nLAB_00261ad3:\n  dVar2 = (double)iVar22;\nLAB_00261adb:\n  if (iVar8 != 0) {\n    *(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;\n  }\n  local_d4 = local_d4 + 1;\n  iVar25 = iVar25 + iVar7 * 8;\n  if (local_d4 == iVar19) goto LAB_00261b09;\n  goto LAB_002618c8;\nLAB_00261e48:\n  DestroyQuantizeInfo(piVar15);\n  CloseBlob(param_2);\n  iVar14 = 1;\n  goto LAB_00260565;\n}" primitive_type (function_declarator "FUN_00260480(int *param_1,int *param_2,uint param_3)" identifier (parameter_list "(int *param_1,int *param_2,uint 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 "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  char *pcVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  byte bVar10;\n  undefined1 uVar11;\n  short sVar12;\n  short sVar13;\n  int iVar14;\n  int *piVar15;\n  undefined4 uVar16;\n  uint uVar17;\n  char *pcVar18;\n  int iVar19;\n  int iVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  char *pcVar24;\n  int iVar25;\n  int iVar26;\n  char cVar27;\n  uint uVar28;\n  int *piVar29;\n  int in_GS_OFFSET;\n  bool bVar30;\n  longlong lVar31;\n  longlong lVar32;\n  uint local_d4;\n  ulonglong local_cc;\n  char *local_b8;\n  byte local_b4;\n  char *local_b0;\n  uint local_ac;\n  uint local_a0;\n  char *local_9c;\n  double local_94;\n  double local_8c;\n  double local_84;\n  char *local_7c;\n  char *local_78;\n  int local_74;\n  int local_64;\n  uint local_60;\n  uint local_54;\n  int local_50;\n  ushort local_48;\n  undefined1 local_46;\n  byte local_45;\n  char local_28 [4];\n  char local_24;\n  char local_23;\n  char local_22;\n  char local_21;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == (int *)0x0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/palm.c",0x2ed,"WritePALMImage");\n  }\n  if (param_1[0xc7d] != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage");\n  }\n  if (param_2 == (int *)0x0) {\n                    \n    __assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");\n  }\n  if (param_2[0xcd1] != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");\n  }\n  if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6);\n  }\n  if (param_3 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");\n  }\n  if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage");\n  }\n  uVar21 = param_3;\n  iVar14 = OpenBlob(param_1,param_2,4,param_3);\n  if (iVar14 != 0) {\n    piVar15 = (int *)AcquireQuantizeInfo(param_1);\n    uVar16 = GetImageListLength(param_2);\n    local_8c = 0.0;\n    local_48 = 0;\n    local_84 = 0.0;\n    local_46 = 0;\n    local_94 = 0.0;\n    local_54 = 0;\n    local_50 = 0;\n    lVar31 = 0;\n    do {\n      local_74 = (int)lVar31;\n      iVar14 = local_74;\n      TransformImageColorspace(param_2,0x17,param_3);\n      uVar17 = GetNumberColors(param_2,0,param_3);\n      local_a0 = 1;\n      if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(param_2,(short)param_2[6]);\n      WriteBlobMSBShort(param_2,(short)param_2[7]);\n      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(param_2,uVar21 & 0xffff);\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(param_2,local_48);\n      WriteBlobByte(param_2,local_a0);\n      if (1 < local_a0) {\n        local_46 = 1;\n      }\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }\n      WriteBlobByte(param_2,local_46);\n      WriteBlobMSBShort(param_2,0);\n      WriteBlobByte(param_2,0);\n      if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }\n      WriteBlobMSBShort(param_2,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }\n      lVar32 = CONCAT44(local_60,local_64);\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }\n      local_7c = (char *)0x0;\n      piVar29 = param_2;\n      if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }\n      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);\n      if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }\n      if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }\n      if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }\n      RelinquishMagickMemory(pcVar18);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      iVar20 = GetNextImageInList(param_2);\n      if (iVar20 == 0) goto LAB_00261e48;\n      uVar21 = GetBlobSize(param_2);\n      uVar21 = uVar21 & 3;\n      iVar20 = 0;\n      if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }\n      SeekBlob(param_2,lVar31 + 10,0);\n      iVar20 = GetBlobSize(param_2);\n      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);\n      lVar31 = GetBlobSize(param_2);\n      uVar21 = 0;\n      SeekBlob(param_2,lVar31);\n      param_2 = (int *)SyncNextImageInList(param_2);\n      bVar30 = 0xfffffffe < local_54;\n      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);\n      if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;\n    } while( true );\n  }\nLAB_00260565:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_002decd0();\n  }\n  return iVar14;\nLAB_00261ad3:\n  dVar2 = (double)iVar22;\nLAB_00261adb:\n  if (iVar8 != 0) {\n    *(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;\n  }\n  local_d4 = local_d4 + 1;\n  iVar25 = iVar25 + iVar7 * 8;\n  if (local_d4 == iVar19) goto LAB_00261b09;\n  goto LAB_002618c8;\nLAB_00261e48:\n  DestroyQuantizeInfo(piVar15);\n  CloseBlob(param_2);\n  iVar14 = 1;\n  goto LAB_00260565;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "undefined1 uVar11;" type_identifier identifier ;) (declaration "short sVar12;" (sized_type_specifier "short" short) identifier ;) (declaration "short sVar13;" (sized_type_specifier "short" short) identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "char *pcVar24;" primitive_type (pointer_declarator "*pcVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "char cVar27;" primitive_type identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "int *piVar29;" primitive_type (pointer_declarator "*piVar29" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar30;" primitive_type identifier ;) (declaration "longlong lVar31;" type_identifier identifier ;) (declaration "longlong lVar32;" type_identifier identifier ;) (declaration "uint local_d4;" type_identifier identifier ;) (declaration "ulonglong local_cc;" type_identifier identifier ;) (declaration "char *local_b8;" primitive_type (pointer_declarator "*local_b8" * identifier) ;) (declaration "byte local_b4;" type_identifier identifier ;) (declaration "char *local_b0;" primitive_type (pointer_declarator "*local_b0" * identifier) ;) (declaration "uint local_ac;" type_identifier identifier ;) (declaration "uint local_a0;" type_identifier identifier ;) (declaration "char *local_9c;" primitive_type (pointer_declarator "*local_9c" * identifier) ;) (declaration "double local_94;" primitive_type identifier ;) (declaration "double local_8c;" primitive_type identifier ;) (declaration "double local_84;" primitive_type identifier ;) (declaration "char *local_7c;" primitive_type (pointer_declarator "*local_7c" * identifier) ;) (declaration "char *local_78;" primitive_type (pointer_declarator "*local_78" * identifier) ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "uint local_60;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "ushort local_48;" type_identifier identifier ;) (declaration "undefined1 local_46;" type_identifier identifier ;) (declaration "byte local_45;" type_identifier identifier ;) (declaration "char local_28 [4];" primitive_type (array_declarator "local_28 [4]" identifier [ number_literal ]) ;) (declaration "char local_24;" primitive_type identifier ;) (declaration "char local_23;" primitive_type identifier ;) (declaration "char local_22;" primitive_type identifier ;) (declaration "char local_21;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (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/palm.c",0x2ed,"WritePALMImage");\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/palm.c",0x2ed,"WritePALMImage");\n  }" { (expression_statement "__assert_fail("image_info != (const ImageInfo *) NULL","coders/palm.c",0x2ed,"WritePALMImage");" (call_expression "__assert_fail("image_info != (const ImageInfo *) NULL","coders/palm.c",0x2ed,"WritePALMImage")" identifier (argument_list "("image_info != (const ImageInfo *) NULL","coders/palm.c",0x2ed,"WritePALMImage")" ( (string_literal ""image_info != (const ImageInfo *) NULL"" " string_content ") , (string_literal ""coders/palm.c"" " string_content ") , number_literal , (string_literal ""WritePALMImage"" " string_content ") ))) ;) })) (if_statement "if (param_1[0xc7d] != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage");\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/palm.c",0x2ee,\n                  "WritePALMImage");\n  }" { (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage")" identifier (argument_list "("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage")" ( (string_literal ""image_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/palm.c"" " string_content ") , number_literal , (string_literal ""WritePALMImage"" " string_content ") ))) ;) })) (if_statement "if (param_2 == (int *)0x0) {\n                    \n    __assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");\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/palm.c",0x2ef,"WritePALMImage");\n  }" { (expression_statement "__assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");" (call_expression "__assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage")" identifier (argument_list "("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""coders/palm.c"" " string_content ") , number_literal , (string_literal ""WritePALMImage"" " string_content ") ))) ;) })) (if_statement "if (param_2[0xcd1] != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");\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/palm.c",0x2f0,"WritePALMImage");\n  }" { (expression_statement "__assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage")" identifier (argument_list "("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/palm.c"" " string_content ") , number_literal , (string_literal ""WritePALMImage"" " string_content ") ))) ;) })) (if_statement "if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&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/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6);\n  }" { (expression_statement "LogMagickEvent(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6);" (call_expression "LogMagickEvent(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6)" identifier (argument_list "(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6)" ( number_literal , (string_literal ""coders/palm.c"" " string_content ") , (string_literal ""WritePALMImage"" " string_content ") , number_literal , (pointer_expression "&DAT_002f75ae" & identifier) , (binary_expression "param_2 + 0xc6" identifier + number_literal) ))) ;) })) (if_statement "if (param_3 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");\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/palm.c",0x2f3,"WritePALMImage");\n  }" { (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage")" identifier (argument_list "("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage")" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""coders/palm.c"" " string_content ") , number_literal , (string_literal ""WritePALMImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage");\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/palm.c",0x2f4,\n                  "WritePALMImage");\n  }" { (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage");" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage")" identifier (argument_list "("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage")" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""coders/palm.c"" " string_content ") , number_literal , (string_literal ""WritePALMImage"" " string_content ") ))) ;) })) (expression_statement "uVar21 = param_3;" (assignment_expression "uVar21 = param_3" identifier = identifier) ;) (expression_statement "iVar14 = OpenBlob(param_1,param_2,4,param_3);" (assignment_expression "iVar14 = 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 (iVar14 != 0) {\n    piVar15 = (int *)AcquireQuantizeInfo(param_1);\n    uVar16 = GetImageListLength(param_2);\n    local_8c = 0.0;\n    local_48 = 0;\n    local_84 = 0.0;\n    local_46 = 0;\n    local_94 = 0.0;\n    local_54 = 0;\n    local_50 = 0;\n    lVar31 = 0;\n    do {\n      local_74 = (int)lVar31;\n      iVar14 = local_74;\n      TransformImageColorspace(param_2,0x17,param_3);\n      uVar17 = GetNumberColors(param_2,0,param_3);\n      local_a0 = 1;\n      if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(param_2,(short)param_2[6]);\n      WriteBlobMSBShort(param_2,(short)param_2[7]);\n      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(param_2,uVar21 & 0xffff);\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(param_2,local_48);\n      WriteBlobByte(param_2,local_a0);\n      if (1 < local_a0) {\n        local_46 = 1;\n      }\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }\n      WriteBlobByte(param_2,local_46);\n      WriteBlobMSBShort(param_2,0);\n      WriteBlobByte(param_2,0);\n      if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }\n      WriteBlobMSBShort(param_2,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }\n      lVar32 = CONCAT44(local_60,local_64);\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }\n      local_7c = (char *)0x0;\n      piVar29 = param_2;\n      if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }\n      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);\n      if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }\n      if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }\n      if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }\n      RelinquishMagickMemory(pcVar18);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      iVar20 = GetNextImageInList(param_2);\n      if (iVar20 == 0) goto LAB_00261e48;\n      uVar21 = GetBlobSize(param_2);\n      uVar21 = uVar21 & 3;\n      iVar20 = 0;\n      if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }\n      SeekBlob(param_2,lVar31 + 10,0);\n      iVar20 = GetBlobSize(param_2);\n      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);\n      lVar31 = GetBlobSize(param_2);\n      uVar21 = 0;\n      SeekBlob(param_2,lVar31);\n      param_2 = (int *)SyncNextImageInList(param_2);\n      bVar30 = 0xfffffffe < local_54;\n      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);\n      if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;\n    } while( true );\n  }" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar15 = (int *)AcquireQuantizeInfo(param_1);\n    uVar16 = GetImageListLength(param_2);\n    local_8c = 0.0;\n    local_48 = 0;\n    local_84 = 0.0;\n    local_46 = 0;\n    local_94 = 0.0;\n    local_54 = 0;\n    local_50 = 0;\n    lVar31 = 0;\n    do {\n      local_74 = (int)lVar31;\n      iVar14 = local_74;\n      TransformImageColorspace(param_2,0x17,param_3);\n      uVar17 = GetNumberColors(param_2,0,param_3);\n      local_a0 = 1;\n      if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(param_2,(short)param_2[6]);\n      WriteBlobMSBShort(param_2,(short)param_2[7]);\n      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(param_2,uVar21 & 0xffff);\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(param_2,local_48);\n      WriteBlobByte(param_2,local_a0);\n      if (1 < local_a0) {\n        local_46 = 1;\n      }\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }\n      WriteBlobByte(param_2,local_46);\n      WriteBlobMSBShort(param_2,0);\n      WriteBlobByte(param_2,0);\n      if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }\n      WriteBlobMSBShort(param_2,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }\n      lVar32 = CONCAT44(local_60,local_64);\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }\n      local_7c = (char *)0x0;\n      piVar29 = param_2;\n      if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }\n      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);\n      if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }\n      if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }\n      if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }\n      RelinquishMagickMemory(pcVar18);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      iVar20 = GetNextImageInList(param_2);\n      if (iVar20 == 0) goto LAB_00261e48;\n      uVar21 = GetBlobSize(param_2);\n      uVar21 = uVar21 & 3;\n      iVar20 = 0;\n      if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }\n      SeekBlob(param_2,lVar31 + 10,0);\n      iVar20 = GetBlobSize(param_2);\n      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);\n      lVar31 = GetBlobSize(param_2);\n      uVar21 = 0;\n      SeekBlob(param_2,lVar31);\n      param_2 = (int *)SyncNextImageInList(param_2);\n      bVar30 = 0xfffffffe < local_54;\n      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);\n      if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;\n    } while( true );\n  }" { (expression_statement "piVar15 = (int *)AcquireQuantizeInfo(param_1);" (assignment_expression "piVar15 = (int *)AcquireQuantizeInfo(param_1)" identifier = (cast_expression "(int *)AcquireQuantizeInfo(param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantizeInfo(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;) (expression_statement "uVar16 = GetImageListLength(param_2);" (assignment_expression "uVar16 = GetImageListLength(param_2)" identifier = (call_expression "GetImageListLength(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "local_8c = 0.0;" (assignment_expression "local_8c = 0.0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_84 = 0.0;" (assignment_expression "local_84 = 0.0" identifier = number_literal) ;) (expression_statement "local_46 = 0;" (assignment_expression "local_46 = 0" identifier = number_literal) ;) (expression_statement "local_94 = 0.0;" (assignment_expression "local_94 = 0.0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "lVar31 = 0;" (assignment_expression "lVar31 = 0" identifier = number_literal) ;) (do_statement "do {\n      local_74 = (int)lVar31;\n      iVar14 = local_74;\n      TransformImageColorspace(param_2,0x17,param_3);\n      uVar17 = GetNumberColors(param_2,0,param_3);\n      local_a0 = 1;\n      if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(param_2,(short)param_2[6]);\n      WriteBlobMSBShort(param_2,(short)param_2[7]);\n      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(param_2,uVar21 & 0xffff);\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(param_2,local_48);\n      WriteBlobByte(param_2,local_a0);\n      if (1 < local_a0) {\n        local_46 = 1;\n      }\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }\n      WriteBlobByte(param_2,local_46);\n      WriteBlobMSBShort(param_2,0);\n      WriteBlobByte(param_2,0);\n      if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }\n      WriteBlobMSBShort(param_2,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }\n      lVar32 = CONCAT44(local_60,local_64);\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }\n      local_7c = (char *)0x0;\n      piVar29 = param_2;\n      if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }\n      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);\n      if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }\n      if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }\n      if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }\n      RelinquishMagickMemory(pcVar18);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      iVar20 = GetNextImageInList(param_2);\n      if (iVar20 == 0) goto LAB_00261e48;\n      uVar21 = GetBlobSize(param_2);\n      uVar21 = uVar21 & 3;\n      iVar20 = 0;\n      if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }\n      SeekBlob(param_2,lVar31 + 10,0);\n      iVar20 = GetBlobSize(param_2);\n      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);\n      lVar31 = GetBlobSize(param_2);\n      uVar21 = 0;\n      SeekBlob(param_2,lVar31);\n      param_2 = (int *)SyncNextImageInList(param_2);\n      bVar30 = 0xfffffffe < local_54;\n      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);\n      if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;\n    } while( true );" do (compound_statement "{\n      local_74 = (int)lVar31;\n      iVar14 = local_74;\n      TransformImageColorspace(param_2,0x17,param_3);\n      uVar17 = GetNumberColors(param_2,0,param_3);\n      local_a0 = 1;\n      if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(param_2,(short)param_2[6]);\n      WriteBlobMSBShort(param_2,(short)param_2[7]);\n      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(param_2,uVar21 & 0xffff);\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(param_2,local_48);\n      WriteBlobByte(param_2,local_a0);\n      if (1 < local_a0) {\n        local_46 = 1;\n      }\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }\n      WriteBlobByte(param_2,local_46);\n      WriteBlobMSBShort(param_2,0);\n      WriteBlobByte(param_2,0);\n      if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }\n      WriteBlobMSBShort(param_2,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }\n      lVar32 = CONCAT44(local_60,local_64);\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }\n      local_7c = (char *)0x0;\n      piVar29 = param_2;\n      if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }\n      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);\n      if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }\n      if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }\n      if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }\n      RelinquishMagickMemory(pcVar18);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      iVar20 = GetNextImageInList(param_2);\n      if (iVar20 == 0) goto LAB_00261e48;\n      uVar21 = GetBlobSize(param_2);\n      uVar21 = uVar21 & 3;\n      iVar20 = 0;\n      if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }\n      SeekBlob(param_2,lVar31 + 10,0);\n      iVar20 = GetBlobSize(param_2);\n      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);\n      lVar31 = GetBlobSize(param_2);\n      uVar21 = 0;\n      SeekBlob(param_2,lVar31);\n      param_2 = (int *)SyncNextImageInList(param_2);\n      bVar30 = 0xfffffffe < local_54;\n      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);\n      if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;\n    }" { (expression_statement "local_74 = (int)lVar31;" (assignment_expression "local_74 = (int)lVar31" identifier = (cast_expression "(int)lVar31" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar14 = local_74;" (assignment_expression "iVar14 = local_74" identifier = 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 "uVar17 = GetNumberColors(param_2,0,param_3);" (assignment_expression "uVar17 = GetNumberColors(param_2,0,param_3)" identifier = (call_expression "GetNumberColors(param_2,0,param_3)" identifier (argument_list "(param_2,0,param_3)" ( identifier , number_literal , identifier )))) ;) (expression_statement "local_a0 = 1;" (assignment_expression "local_a0 = 1" identifier = number_literal) ;) (if_statement "if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }" if (parenthesized_expression "(uVar17 < 3)" ( (binary_expression "uVar17 < 3" identifier < number_literal) )) (compound_statement "{\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }" { (expression_statement "TransformImageColorspace(param_2,param_2[1],param_3);" (call_expression "TransformImageColorspace(param_2,param_2[1],param_3)" identifier (argument_list "(param_2,param_2[1],param_3)" ( identifier , (subscript_expression "param_2[1]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "local_a0 = 1;" (assignment_expression "local_a0 = 1" identifier = number_literal) ;) (expression_statement "local_45 = 1;" (assignment_expression "local_45 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);" statement_identifier : (expression_statement "TransformImageColorspace(param_2,3,param_3,uVar21);" (call_expression "TransformImageColorspace(param_2,3,param_3,uVar21)" identifier (argument_list "(param_2,3,param_3,uVar21)" ( identifier , number_literal , identifier , identifier ))) ;)) (expression_statement "SetImageType(param_2,4,param_3);" (call_expression "SetImageType(param_2,4,param_3)" identifier (argument_list "(param_2,4,param_3)" ( identifier , number_literal , identifier ))) ;) (expression_statement "SortColormapByIntensity(param_2,param_3);" (call_expression "SortColormapByIntensity(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier ))) ;) }) (else_clause "else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }" else (compound_statement "{\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }" { (do_statement "do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);" do (compound_statement "{\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        }" { (expression_statement "local_a0 = local_a0 * 2;" (assignment_expression "local_a0 = local_a0 * 2" identifier = (binary_expression "local_a0 * 2" identifier * number_literal)) ;) (expression_statement "local_45 = (byte)local_a0;" (assignment_expression "local_45 = (byte)local_a0" identifier = (cast_expression "(byte)local_a0" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "((uint)(1 << (local_45 & 0x1f)) < uVar17)" ( (binary_expression "(uint)(1 << (local_45 & 0x1f)) < uVar17" (call_expression "(uint)(1 << (local_45 & 0x1f))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 << (local_45 & 0x1f))" ( (binary_expression "1 << (local_45 & 0x1f)" number_literal << (parenthesized_expression "(local_45 & 0x1f)" ( (binary_expression "local_45 & 0x1f" identifier & number_literal) ))) ))) < identifier) )) ;) (if_statement "if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }" if (parenthesized_expression "(local_a0 < 0x11)" ( (binary_expression "local_a0 < 0x11" identifier < number_literal) )) (compound_statement "{\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }" { (if_statement "if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }" if (parenthesized_expression "(local_a0 == 0x10)" ( (binary_expression "local_a0 == 0x10" identifier == number_literal) )) (compound_statement "{\n            local_45 = 0x10;\n          }" { (expression_statement "local_45 = 0x10;" (assignment_expression "local_45 = 0x10" identifier = number_literal) ;) }) (else_clause "else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }" else (compound_statement "{\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }" { (expression_statement "uVar21 = local_a0;" (assignment_expression "uVar21 = local_a0" identifier = identifier) ;) (expression_statement "TransformImageColorspace(param_2,param_2[1],param_3,local_a0);" (call_expression "TransformImageColorspace(param_2,param_2[1],param_3,local_a0)" identifier (argument_list "(param_2,param_2[1],param_3,local_a0)" ( identifier , (subscript_expression "param_2[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) (if_statement "if (local_a0 < 8) goto LAB_00261df3;" if (parenthesized_expression "(local_a0 < 8)" ( (binary_expression "local_a0 < 8" identifier < number_literal) )) (goto_statement "goto LAB_00261df3;" goto statement_identifier ;)) }))) }) (else_clause "else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }" else (compound_statement "{\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }" { (expression_statement "local_a0 = 0x10;" (assignment_expression "local_a0 = 0x10" identifier = number_literal) ;) (expression_statement "local_45 = 0x10;" (assignment_expression "local_45 = 0x10" identifier = number_literal) ;) }))) }))) (if_statement "if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }" if (parenthesized_expression "((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2))))" ( (binary_expression "(*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))" (parenthesized_expression "(*param_2 == 2)" ( (binary_expression "*param_2 == 2" (pointer_expression "*param_2" * identifier) == number_literal) )) && (parenthesized_expression "(((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))" ( (parenthesized_expression "((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2))" ( (binary_expression "(uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)" (binary_expression "(uint)param_2[9] < 0x101" (cast_expression "(uint)param_2[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[9]" identifier [ number_literal ])) < number_literal) || (parenthesized_expression "(SetImageStorageClass(param_2,1,param_3), *param_2 == 2)" ( (comma_expression "SetImageStorageClass(param_2,1,param_3), *param_2 == 2" (call_expression "SetImageStorageClass(param_2,1,param_3)" identifier (argument_list "(param_2,1,param_3)" ( identifier , number_literal , identifier ))) , (binary_expression "*param_2 == 2" (pointer_expression "*param_2" * identifier) == number_literal)) ))) )) ))) )) (compound_statement "{\n        local_48 = local_48 | 0x4000;\n      }" { (expression_statement "local_48 = local_48 | 0x4000;" (assignment_expression "local_48 = local_48 | 0x4000" identifier = (binary_expression "local_48 | 0x4000" identifier | number_literal)) ;) }) (else_clause "else {\n        local_48 = local_48 | 0x400;\n      }" else (compound_statement "{\n        local_48 = local_48 | 0x400;\n      }" { (expression_statement "local_48 = local_48 | 0x400;" (assignment_expression "local_48 = local_48 | 0x400" identifier = (binary_expression "local_48 | 0x400" 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 "uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;" (assignment_expression "uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2" identifier = (binary_expression "(int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2" (cast_expression "(int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0))" ( (binary_expression "(ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)" (call_expression "(ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6])" (call_expression "(ulonglong)(uint)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6])" ( (binary_expression "(int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]" (binary_expression "(int)(0x10 / (ulonglong)local_a0) + -1" (cast_expression "(int)(0x10 / (ulonglong)local_a0)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(0x10 / (ulonglong)local_a0)" ( (binary_expression "0x10 / (ulonglong)local_a0" number_literal / (cast_expression "(ulonglong)local_a0" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ))) + number_literal) + (subscript_expression "param_2[6]" identifier [ number_literal ])) ))) / (parenthesized_expression "(0x10 / (ulonglong)local_a0)" ( (binary_expression "0x10 / (ulonglong)local_a0" number_literal / (cast_expression "(ulonglong)local_a0" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ))) ))) * number_literal)) ;) (expression_statement "WriteBlobMSBShort(param_2,uVar21 & 0xffff);" (call_expression "WriteBlobMSBShort(param_2,uVar21 & 0xffff)" identifier (argument_list "(param_2,uVar21 & 0xffff)" ( identifier , (binary_expression "uVar21 & 0xffff" identifier & number_literal) ))) ;) (if_statement "if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }" if (parenthesized_expression "((*param_1 == 0x13) || (*param_1 == 7))" ( (binary_expression "(*param_1 == 0x13) || (*param_1 == 7)" (parenthesized_expression "(*param_1 == 0x13)" ( (binary_expression "*param_1 == 0x13" (pointer_expression "*param_1" * identifier) == number_literal) )) || (parenthesized_expression "(*param_1 == 7)" ( (binary_expression "*param_1 == 7" (pointer_expression "*param_1" * identifier) == number_literal) ))) )) (compound_statement "{\n        local_48 = local_48 | 0x8000;\n      }" { (expression_statement "local_48 = local_48 | 0x8000;" (assignment_expression "local_48 = local_48 | 0x8000" identifier = (binary_expression "local_48 | 0x8000" identifier | number_literal)) ;) })) (expression_statement "WriteBlobMSBShort(param_2,local_48);" (call_expression "WriteBlobMSBShort(param_2,local_48)" identifier (argument_list "(param_2,local_48)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobByte(param_2,local_a0);" (call_expression "WriteBlobByte(param_2,local_a0)" identifier (argument_list "(param_2,local_a0)" ( identifier , identifier ))) ;) (if_statement "if (1 < local_a0) {\n        local_46 = 1;\n      }" if (parenthesized_expression "(1 < local_a0)" ( (binary_expression "1 < local_a0" number_literal < identifier) )) (compound_statement "{\n        local_46 = 1;\n      }" { (expression_statement "local_46 = 1;" (assignment_expression "local_46 = 1" identifier = number_literal) ;) })) (if_statement "if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }" if (parenthesized_expression "((*param_1 == 0x13) || (*param_1 == 7))" ( (binary_expression "(*param_1 == 0x13) || (*param_1 == 7)" (parenthesized_expression "(*param_1 == 0x13)" ( (binary_expression "*param_1 == 0x13" (pointer_expression "*param_1" * identifier) == number_literal) )) || (parenthesized_expression "(*param_1 == 7)" ( (binary_expression "*param_1 == 7" (pointer_expression "*param_1" * identifier) == number_literal) ))) )) (compound_statement "{\n        local_46 = 2;\n      }" { (expression_statement "local_46 = 2;" (assignment_expression "local_46 = 2" identifier = number_literal) ;) })) (expression_statement "WriteBlobByte(param_2,local_46);" (call_expression "WriteBlobByte(param_2,local_46)" identifier (argument_list "(param_2,local_46)" ( 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 "WriteBlobByte(param_2,0);" (call_expression "WriteBlobByte(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (if_statement "if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }" if (parenthesized_expression "(*param_1 == 0x13)" ( (binary_expression "*param_1 == 0x13" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n        WriteBlobByte(param_2,1);\n      }" { (expression_statement "WriteBlobByte(param_2,1);" (call_expression "WriteBlobByte(param_2,1)" identifier (argument_list "(param_2,1)" ( identifier , number_literal ))) ;) }) (else_clause "else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }" else (if_statement "if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }" if (parenthesized_expression "(*param_1 == 7)" ( (binary_expression "*param_1 == 7" (pointer_expression "*param_1" * identifier) == 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 ))) ;) }) (else_clause "else {\n        WriteBlobByte(param_2,0xff);\n      }" else (compound_statement "{\n        WriteBlobByte(param_2,0xff);\n      }" { (expression_statement "WriteBlobByte(param_2,0xff);" (call_expression "WriteBlobByte(param_2,0xff)" identifier (argument_list "(param_2,0xff)" ( identifier , number_literal ))) ;) }))))) (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (if_statement "if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }" if (parenthesized_expression "(local_a0 == 0x10)" ( (binary_expression "local_a0 == 0x10" identifier == number_literal) )) (compound_statement "{\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }" { (expression_statement "WriteBlobByte(param_2,5);" (call_expression "WriteBlobByte(param_2,5)" identifier (argument_list "(param_2,5)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobByte(param_2,6);" (call_expression "WriteBlobByte(param_2,6)" identifier (argument_list "(param_2,6)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobByte(param_2,5);" (call_expression "WriteBlobByte(param_2,5)" identifier (argument_list "(param_2,5)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobByte(param_2,0);" (call_expression "WriteBlobByte(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 "local_64 = 0x18;" (assignment_expression "local_64 = 0x18" identifier = number_literal) ;) (labeled_statement "LAB_002607b8:\n        local_60 = 0;" statement_identifier : (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }" else (compound_statement "{\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }" { (expression_statement "local_64 = 0x10;" (assignment_expression "local_64 = 0x10" identifier = number_literal) ;) (if_statement "if (local_a0 != 8) goto LAB_002607b8;" if (parenthesized_expression "(local_a0 != 8)" ( (binary_expression "local_a0 != 8" identifier != number_literal) )) (goto_statement "goto LAB_002607b8;" goto statement_identifier ;)) (if_statement "if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }" if (parenthesized_expression "((local_48 & 0x4000) == 0)" ( (binary_expression "(local_48 & 0x4000) == 0" (parenthesized_expression "(local_48 & 0x4000)" ( (binary_expression "local_48 & 0x4000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }" { (expression_statement "iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);" (assignment_expression "iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3)" identifier = (call_expression "ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3)" identifier (argument_list "(0x100,1,"RGB",1,&DAT_00344940,param_3)" ( number_literal , number_literal , (string_literal ""RGB"" " string_content ") , number_literal , (pointer_expression "&DAT_00344940" & identifier) , identifier )))) ;) (expression_statement "TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);" (call_expression "TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3)" identifier (argument_list "(iVar20,*(undefined4 *)(iVar20 + 4),param_3)" ( identifier , (pointer_expression "*(undefined4 *)(iVar20 + 4)" * (cast_expression "(undefined4 *)(iVar20 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 4)" ( (binary_expression "iVar20 + 4" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "RemapImage(piVar15,param_2,iVar20,param_3);" (call_expression "RemapImage(piVar15,param_2,iVar20,param_3)" identifier (argument_list "(piVar15,param_2,iVar20,param_3)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\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            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }" { (expression_statement "iVar19 = param_2[6];" (assignment_expression "iVar19 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "local_78 = (char *)0x0;" (assignment_expression "local_78 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);" do (compound_statement "{\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            }" { (expression_statement "iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);" (assignment_expression "iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3)" identifier = (call_expression "GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3)" identifier (argument_list "(param_2,0,local_78,iVar19,1,param_3)" ( identifier , number_literal , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar25 == 0) break;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = param_2[6];" (assignment_expression "iVar19 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (if_statement "if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }" if (parenthesized_expression "(0 < iVar19)" ( (binary_expression "0 < iVar19" number_literal < identifier) )) (compound_statement "{\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }" { (expression_statement "iVar5 = param_2[10];" (assignment_expression "iVar5 = param_2[10]" identifier = (subscript_expression "param_2[10]" identifier [ number_literal ])) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = param_2[0xaa];" (assignment_expression "iVar6 = param_2[0xaa]" identifier = (subscript_expression "param_2[0xaa]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = param_2[0xa6];" (assignment_expression "iVar7 = param_2[0xa6]" identifier = (subscript_expression "param_2[0xa6]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = *(int *)(iVar6 + 0x40);" (assignment_expression "iVar8 = *(int *)(iVar6 + 0x40)" identifier = (pointer_expression "*(int *)(iVar6 + 0x40)" * (cast_expression "(int *)(iVar6 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x40)" ( (binary_expression "iVar6 + 0x40" identifier + number_literal) ))))) ;) (labeled_statement "LAB_002618c8:\n                iVar26 = iVar5;" statement_identifier : (expression_statement "iVar26 = iVar5;" (assignment_expression "iVar26 = iVar5" identifier = identifier) ;)) (if_statement "if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }" { (expression_statement "iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;" (assignment_expression "iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5" identifier = (binary_expression "(int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5" (binary_expression "(int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50" (cast_expression "(int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8))" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8))" identifier (argument_list "(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8))" ( (pointer_expression "*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)" * (cast_expression "(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + *(int *)(iVar6 + 0x44) * 8)" ( (binary_expression "iVar25 + *(int *)(iVar6 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar6 + 0x44) * 8" (pointer_expression "*(int *)(iVar6 + 0x44)" * (cast_expression "(int *)(iVar6 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x44)" ( (binary_expression "iVar6 + 0x44" identifier + number_literal) )))) * number_literal)) )))) )))) * number_literal) + identifier)) ;) })) (expression_statement "dVar2 = *(double *)(iVar26 + 0x20);" (assignment_expression "dVar2 = *(double *)(iVar26 + 0x20)" identifier = (pointer_expression "*(double *)(iVar26 + 0x20)" * (cast_expression "(double *)(iVar26 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x20)" ( (binary_expression "iVar26 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" if (parenthesized_expression "(NAN(dVar2))" ( (call_expression "NAN(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))) )) (compound_statement "{\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "pcVar18 = &DAT_00344940;" (assignment_expression "pcVar18 = &DAT_00344940" identifier = (pointer_expression "&DAT_00344940" & identifier)) ;) (do_statement "do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);" do (compound_statement "{\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  }" { (if_statement "if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }" if (parenthesized_expression "(*pcVar18 == '\0')" ( (binary_expression "*pcVar18 == '\0'" (pointer_expression "*pcVar18" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }" { (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }" if (parenthesized_expression "(0.0 < *(double *)(iVar26 + 0x28))" ( (binary_expression "0.0 < *(double *)(iVar26 + 0x28)" number_literal < (pointer_expression "*(double *)(iVar26 + 0x28)" * (cast_expression "(double *)(iVar26 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x28)" ( (binary_expression "iVar26 + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }" { (expression_statement "dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;" (assignment_expression "dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c" identifier = (binary_expression "*(double *)(iVar26 + 0x28) / (double)DAT_002e814c" (pointer_expression "*(double *)(iVar26 + 0x28)" * (cast_expression "(double *)(iVar26 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x28)" ( (binary_expression "iVar26 + 0x28" identifier + number_literal) )))) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }" { (expression_statement "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "char" primitive_type) ) (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)) )))))) ;) })) })) (if_statement "if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }" if (parenthesized_expression "(pcVar18[1] == cVar27)" ( (binary_expression "pcVar18[1] == cVar27" (subscript_expression "pcVar18[1]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }" { (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" if (parenthesized_expression "(0.0 < *(double *)(iVar26 + 0x30))" ( (binary_expression "0.0 < *(double *)(iVar26 + 0x30)" number_literal < (pointer_expression "*(double *)(iVar26 + 0x30)" * (cast_expression "(double *)(iVar26 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x30)" ( (binary_expression "iVar26 + 0x30" identifier + number_literal) ))))) )) (compound_statement "{\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" { (expression_statement "dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;" (assignment_expression "dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c" identifier = (binary_expression "*(double *)(iVar26 + 0x30) / (double)DAT_002e814c" (pointer_expression "*(double *)(iVar26 + 0x30)" * (cast_expression "(double *)(iVar26 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x30)" ( (binary_expression "iVar26 + 0x30" identifier + number_literal) )))) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" { (expression_statement "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "char" primitive_type) ) (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)) )))))) ;) })) })) (if_statement "if (pcVar18[2] == cVar27) goto LAB_00261ad3;" if (parenthesized_expression "(pcVar18[2] == cVar27)" ( (binary_expression "pcVar18[2] == cVar27" (subscript_expression "pcVar18[2]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00261ad3;" goto statement_identifier ;)) })) })) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "pcVar18 = pcVar18 + 3;" (assignment_expression "pcVar18 = pcVar18 + 3" identifier = (binary_expression "pcVar18 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar22 != 0x100)" ( (binary_expression "iVar22 != 0x100" identifier != number_literal) )) ;) }) (else_clause "else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" else (if_statement "if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" if (parenthesized_expression "(dVar2 <= 0.0)" ( (binary_expression "dVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "pcVar18 = &DAT_00344940;" (assignment_expression "pcVar18 = &DAT_00344940" identifier = (pointer_expression "&DAT_00344940" & identifier)) ;) (do_statement "do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);" do (compound_statement "{\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  }" { (if_statement "if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }" if (parenthesized_expression "(*pcVar18 == '\0')" ( (binary_expression "*pcVar18 == '\0'" (pointer_expression "*pcVar18" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }" { (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }" if (parenthesized_expression "(0.0 < *(double *)(iVar26 + 0x28))" ( (binary_expression "0.0 < *(double *)(iVar26 + 0x28)" number_literal < (pointer_expression "*(double *)(iVar26 + 0x28)" * (cast_expression "(double *)(iVar26 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x28)" ( (binary_expression "iVar26 + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }" { (expression_statement "dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;" (assignment_expression "dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c" identifier = (binary_expression "*(double *)(iVar26 + 0x28) / (double)DAT_002e814c" (pointer_expression "*(double *)(iVar26 + 0x28)" * (cast_expression "(double *)(iVar26 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x28)" ( (binary_expression "iVar26 + 0x28" identifier + number_literal) )))) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }" { (expression_statement "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "char" primitive_type) ) (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)) )))))) ;) })) })) (if_statement "if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }" if (parenthesized_expression "(pcVar18[1] == cVar27)" ( (binary_expression "pcVar18[1] == cVar27" (subscript_expression "pcVar18[1]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }" { (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" if (parenthesized_expression "(0.0 < *(double *)(iVar26 + 0x30))" ( (binary_expression "0.0 < *(double *)(iVar26 + 0x30)" number_literal < (pointer_expression "*(double *)(iVar26 + 0x30)" * (cast_expression "(double *)(iVar26 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x30)" ( (binary_expression "iVar26 + 0x30" identifier + number_literal) ))))) )) (compound_statement "{\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" { (expression_statement "dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;" (assignment_expression "dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c" identifier = (binary_expression "*(double *)(iVar26 + 0x30) / (double)DAT_002e814c" (pointer_expression "*(double *)(iVar26 + 0x30)" * (cast_expression "(double *)(iVar26 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x30)" ( (binary_expression "iVar26 + 0x30" identifier + number_literal) )))) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" { (expression_statement "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" identifier = (cast_expression "(char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" ( (type_descriptor "char" primitive_type) ) (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)) )))))) ;) })) })) (if_statement "if (pcVar18[2] == cVar27) goto LAB_00261ad3;" if (parenthesized_expression "(pcVar18[2] == cVar27)" ( (binary_expression "pcVar18[2] == cVar27" (subscript_expression "pcVar18[2]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00261ad3;" goto statement_identifier ;)) })) })) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "pcVar18 = pcVar18 + 3;" (assignment_expression "pcVar18 = pcVar18 + 3" identifier = (binary_expression "pcVar18 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar22 != 0x100)" ( (binary_expression "iVar22 != 0x100" identifier != number_literal) )) ;) }) (else_clause "else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" else (compound_statement "{\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "pcVar18 = &DAT_00344940;" (assignment_expression "pcVar18 = &DAT_00344940" identifier = (pointer_expression "&DAT_00344940" & identifier)) ;) (do_statement "do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);" do (compound_statement "{\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  }" { (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" identifier = number_literal) ;) (if_statement "if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }" if (parenthesized_expression "(dVar2 / (double)DAT_002e814c < (double)DAT_002e8150)" ( (binary_expression "dVar2 / (double)DAT_002e814c < (double)DAT_002e8150" (binary_expression "dVar2 / (double)DAT_002e814c" identifier / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier)) < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }" { (expression_statement "cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8)" identifier = (cast_expression "(char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8)" ( (type_descriptor "char" primitive_type) ) (cast_expression "(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8)" identifier (argument_list "(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8)" ( (binary_expression "dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8" (binary_expression "dVar2 / (double)DAT_002e814c" identifier / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier)) + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) (if_statement "if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }" if (parenthesized_expression "(*pcVar18 == cVar27)" ( (binary_expression "*pcVar18 == cVar27" (pointer_expression "*pcVar18" * identifier) == identifier) )) (compound_statement "{\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }" { (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }" if (parenthesized_expression "(0.0 < *(double *)(iVar26 + 0x28))" ( (binary_expression "0.0 < *(double *)(iVar26 + 0x28)" number_literal < (pointer_expression "*(double *)(iVar26 + 0x28)" * (cast_expression "(double *)(iVar26 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x28)" ( (binary_expression "iVar26 + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }" { (expression_statement "dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;" (assignment_expression "dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c" identifier = (binary_expression "*(double *)(iVar26 + 0x28) / (double)DAT_002e814c" (pointer_expression "*(double *)(iVar26 + 0x28)" * (cast_expression "(double *)(iVar26 + 0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x28)" ( (binary_expression "iVar26 + 0x28" identifier + number_literal) )))) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" identifier = number_literal) ;) (if_statement "if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }" if (parenthesized_expression "(dVar4 < (double)DAT_002e8150)" ( (binary_expression "dVar4 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }" { (expression_statement "cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8)" identifier = (cast_expression "(char)(short)ROUND(dVar4 + (double)DAT_002df2b8)" ( (type_descriptor "char" primitive_type) ) (cast_expression "(short)ROUND(dVar4 + (double)DAT_002df2b8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar4 + (double)DAT_002df2b8)" identifier (argument_list "(dVar4 + (double)DAT_002df2b8)" ( (binary_expression "dVar4 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (if_statement "if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }" if (parenthesized_expression "(pcVar18[1] == cVar27)" ( (binary_expression "pcVar18[1] == cVar27" (subscript_expression "pcVar18[1]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }" { (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }" if (parenthesized_expression "(0.0 < *(double *)(iVar26 + 0x30))" ( (binary_expression "0.0 < *(double *)(iVar26 + 0x30)" number_literal < (pointer_expression "*(double *)(iVar26 + 0x30)" * (cast_expression "(double *)(iVar26 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x30)" ( (binary_expression "iVar26 + 0x30" identifier + number_literal) ))))) )) (compound_statement "{\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }" { (expression_statement "dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;" (assignment_expression "dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c" identifier = (binary_expression "*(double *)(iVar26 + 0x30) / (double)DAT_002e814c" (pointer_expression "*(double *)(iVar26 + 0x30)" * (cast_expression "(double *)(iVar26 + 0x30)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x30)" ( (binary_expression "iVar26 + 0x30" identifier + number_literal) )))) / (cast_expression "(double)DAT_002e814c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" identifier = number_literal) ;) (if_statement "if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }" if (parenthesized_expression "(dVar4 < (double)DAT_002e8150)" ( (binary_expression "dVar4 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }" { (expression_statement "cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8)" identifier = (cast_expression "(char)(short)ROUND(dVar4 + (double)DAT_002df2b8)" ( (type_descriptor "char" primitive_type) ) (cast_expression "(short)ROUND(dVar4 + (double)DAT_002df2b8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar4 + (double)DAT_002df2b8)" identifier (argument_list "(dVar4 + (double)DAT_002df2b8)" ( (binary_expression "dVar4 + (double)DAT_002df2b8" identifier + (cast_expression "(double)DAT_002df2b8" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (if_statement "if (pcVar18[2] == cVar27) goto LAB_00261ad3;" if (parenthesized_expression "(pcVar18[2] == cVar27)" ( (binary_expression "pcVar18[2] == cVar27" (subscript_expression "pcVar18[2]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00261ad3;" goto statement_identifier ;)) })) })) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "pcVar18 = pcVar18 + 3;" (assignment_expression "pcVar18 = pcVar18 + 3" identifier = (binary_expression "pcVar18 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar22 != 0x100)" ( (binary_expression "iVar22 != 0x100" identifier != number_literal) )) ;) }))))) (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" identifier = number_literal) ;) (goto_statement "goto LAB_00261adb;" goto statement_identifier ;) })) (labeled_statement "LAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);" statement_identifier : (expression_statement "local_78 = (char *)((int)local_78 + 1);" (assignment_expression "local_78 = (char *)((int)local_78 + 1)" identifier = (cast_expression "(char *)((int)local_78 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_78 + 1)" ( (binary_expression "(int)local_78 + 1" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) }) while (parenthesized_expression "((int)local_78 < param_2[7])" ( (binary_expression "(int)local_78 < param_2[7]" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) < (subscript_expression "param_2[7]" identifier [ number_literal ])) )) ;) })) (expression_statement "DestroyImage(iVar20);" (call_expression "DestroyImage(iVar20)" identifier (argument_list "(iVar20)" ( identifier ))) ;) (expression_statement "local_64 = 0x10;" (assignment_expression "local_64 = 0x10" identifier = number_literal) ;) (goto_statement "goto LAB_002607b8;" goto statement_identifier ;) })) (expression_statement "iVar20 = IdentifyPaletteImage(param_2,param_3);" (assignment_expression "iVar20 = IdentifyPaletteImage(param_2,param_3)" identifier = (call_expression "IdentifyPaletteImage(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (expression_statement "piVar15[3] = (iVar20 == 0) + 1;" (assignment_expression "piVar15[3] = (iVar20 == 0) + 1" (subscript_expression "piVar15[3]" identifier [ number_literal ]) = (binary_expression "(iVar20 == 0) + 1" (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) + number_literal)) ;) (expression_statement "*piVar15 = param_2[9];" (assignment_expression "*piVar15 = param_2[9]" (pointer_expression "*piVar15" * identifier) = (subscript_expression "param_2[9]" identifier [ number_literal ])) ;) (expression_statement "QuantizeImage(piVar15,param_2,param_3);" (call_expression "QuantizeImage(piVar15,param_2,param_3)" identifier (argument_list "(piVar15,param_2,param_3)" ( identifier , identifier , identifier ))) ;) (expression_statement "WriteBlobMSBShort(param_2,(short)param_2[9]);" (call_expression "WriteBlobMSBShort(param_2,(short)param_2[9])" identifier (argument_list "(param_2,(short)param_2[9])" ( identifier , (cast_expression "(short)param_2[9]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "param_2[9]" identifier [ number_literal ])) ))) ;) (if_statement "if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }" if (parenthesized_expression "(param_2[9] == 0)" ( (binary_expression "param_2[9] == 0" (subscript_expression "param_2[9]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }" { (expression_statement "local_64 = 0x12;" (assignment_expression "local_64 = 0x12" identifier = number_literal) ;) (goto_statement "goto LAB_002607b8;" goto statement_identifier ;) })) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (do_statement "do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);" do (compound_statement "{\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        }" { (expression_statement "WriteBlobByte(param_2,local_d4 & 0xff);" (call_expression "WriteBlobByte(param_2,local_d4 & 0xff)" identifier (argument_list "(param_2,local_d4 & 0xff)" ( identifier , (binary_expression "local_d4 & 0xff" identifier & number_literal) ))) ;) (expression_statement "dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);" (assignment_expression "dVar2 = *(double *)(param_2[10] + 0x20 + iVar20)" identifier = (pointer_expression "*(double *)(param_2[10] + 0x20 + iVar20)" * (cast_expression "(double *)(param_2[10] + 0x20 + iVar20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[10] + 0x20 + iVar20)" ( (binary_expression "param_2[10] + 0x20 + iVar20" (binary_expression "param_2[10] + 0x20" (subscript_expression "param_2[10]" identifier [ number_literal ]) + number_literal) + identifier) ))))) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (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            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (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))) ;) (expression_statement "uVar11 = 0xff;" (assignment_expression "uVar11 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }" { (expression_statement "uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar11 = (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 "WriteBlobByte(param_2,uVar11);" (call_expression "WriteBlobByte(param_2,uVar11)" identifier (argument_list "(param_2,uVar11)" ( identifier , identifier ))) ;) (expression_statement "dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);" (assignment_expression "dVar2 = *(double *)(param_2[10] + 0x28 + iVar20)" identifier = (pointer_expression "*(double *)(param_2[10] + 0x28 + iVar20)" * (cast_expression "(double *)(param_2[10] + 0x28 + iVar20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[10] + 0x28 + iVar20)" ( (binary_expression "param_2[10] + 0x28 + iVar20" (binary_expression "param_2[10] + 0x28" (subscript_expression "param_2[10]" identifier [ number_literal ]) + number_literal) + identifier) ))))) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (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            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (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))) ;) (expression_statement "uVar11 = 0xff;" (assignment_expression "uVar11 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }" { (expression_statement "uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar11 = (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 "WriteBlobByte(param_2,uVar11);" (call_expression "WriteBlobByte(param_2,uVar11)" identifier (argument_list "(param_2,uVar11)" ( identifier , identifier ))) ;) (expression_statement "dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);" (assignment_expression "dVar2 = *(double *)(param_2[10] + 0x30 + iVar20)" identifier = (pointer_expression "*(double *)(param_2[10] + 0x30 + iVar20)" * (cast_expression "(double *)(param_2[10] + 0x30 + iVar20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[10] + 0x30 + iVar20)" ( (binary_expression "param_2[10] + 0x30 + iVar20" (binary_expression "param_2[10] + 0x30" (subscript_expression "param_2[10]" identifier [ number_literal ]) + number_literal) + identifier) ))))) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (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            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (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))) ;) (expression_statement "uVar11 = 0xff;" (assignment_expression "uVar11 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }" if (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" ( (binary_expression "dVar2 < (double)DAT_002e8150" identifier < (cast_expression "(double)DAT_002e8150" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }" { (expression_statement "uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar11 = (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 "iVar20 = iVar20 + 0x50;" (assignment_expression "iVar20 = iVar20 + 0x50" identifier = (binary_expression "iVar20 + 0x50" identifier + number_literal)) ;) (expression_statement "WriteBlobByte(param_2,uVar11);" (call_expression "WriteBlobByte(param_2,uVar11)" identifier (argument_list "(param_2,uVar11)" ( identifier , identifier ))) ;) (expression_statement "local_d4 = local_d4 + 1;" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_d4 < (uint)param_2[9])" ( (binary_expression "local_d4 < (uint)param_2[9]" identifier < (cast_expression "(uint)param_2[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[9]" identifier [ number_literal ]))) )) ;) (expression_statement "local_64 = local_d4 * 4 + 0x12;" (assignment_expression "local_64 = local_d4 * 4 + 0x12" identifier = (binary_expression "local_d4 * 4 + 0x12" (binary_expression "local_d4 * 4" identifier * number_literal) + number_literal)) ;) (expression_statement "local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);" (assignment_expression "local_60 = (uint)(0xffffffef < local_d4 * 4 + 2)" identifier = (call_expression "(uint)(0xffffffef < local_d4 * 4 + 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xffffffef < local_d4 * 4 + 2)" ( (binary_expression "0xffffffef < local_d4 * 4 + 2" number_literal < (binary_expression "local_d4 * 4 + 2" (binary_expression "local_d4 * 4" identifier * number_literal) + number_literal)) )))) ;) }))) (expression_statement "lVar32 = CONCAT44(local_60,local_64);" (assignment_expression "lVar32 = CONCAT44(local_60,local_64)" identifier = (call_expression "CONCAT44(local_60,local_64)" identifier (argument_list "(local_60,local_64)" ( identifier , identifier )))) ;) (if_statement "if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }" if (parenthesized_expression "((short)local_48 < 0)" ( (binary_expression "(short)local_48 < 0" (cast_expression "(short)local_48" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) < number_literal) )) (compound_statement "{\n        WriteBlobMSBShort(param_2,0);\n      }" { (expression_statement "WriteBlobMSBShort(param_2,0);" (call_expression "WriteBlobMSBShort(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) })) (expression_statement "local_7c = (char *)0x0;" (assignment_expression "local_7c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar29 = param_2;" (assignment_expression "piVar29 = param_2" identifier = identifier) ;) (if_statement "if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }" if (parenthesized_expression "((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0))" ( (binary_expression "(*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)" (parenthesized_expression "(*param_1 == 7)" ( (binary_expression "*param_1 == 7" (pointer_expression "*param_1" * identifier) == number_literal) )) && (parenthesized_expression "(local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)" ( (comma_expression "local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0" (assignment_expression "local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1)" identifier = (cast_expression "(char *)AcquireQuantumMemory(uVar21 + 0x100,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(uVar21 + 0x100,1)" identifier (argument_list "(uVar21 + 0x100,1)" ( (binary_expression "uVar21 + 0x100" identifier + number_literal) , number_literal ))))) , (binary_expression "local_7c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }" { (expression_statement "DestroyQuantizeInfo(piVar15);" (call_expression "DestroyQuantizeInfo(piVar15)" identifier (argument_list "(piVar15)" ( identifier ))) ;) (expression_statement "ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);" (call_expression "ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6)" identifier (argument_list "(param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6)" ( identifier , (string_literal ""coders/palm.c"" " string_content ") , (string_literal ""WritePALMImage"" " 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 "piVar15 = (int *)param_1[3];" (assignment_expression "piVar15 = (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 ]))) ;) (while_statement "while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }" while (parenthesized_expression "(piVar9 = param_2, piVar15 != (int *)0x0)" ( (comma_expression "piVar9 = param_2, piVar15 != (int *)0x0" (assignment_expression "piVar9 = param_2" identifier = identifier) , (binary_expression "piVar15 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }" { (expression_statement "piVar15 = (int *)piVar9[0xccf];" (assignment_expression "piVar15 = (int *)piVar9[0xccf]" identifier = (cast_expression "(int *)piVar9[0xccf]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[0xccf]" identifier [ number_literal ]))) ;) (expression_statement "param_2 = piVar15;" (assignment_expression "param_2 = piVar15" identifier = identifier) ;) (expression_statement "piVar29 = piVar9;" (assignment_expression "piVar29 = piVar9" identifier = identifier) ;) })) (labeled_statement "LAB_0026128c:\n        CloseBlob(piVar29);" statement_identifier : (expression_statement "CloseBlob(piVar29);" (call_expression "CloseBlob(piVar29)" identifier (argument_list "(piVar29)" ( identifier ))) ;)) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);" (assignment_expression "pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1)" identifier = (cast_expression "(char *)AcquireQuantumMemory(uVar21 + 0x100,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(uVar21 + 0x100,1)" identifier (argument_list "(uVar21 + 0x100,1)" ( (binary_expression "uVar21 + 0x100" identifier + number_literal) , number_literal ))))) ;) (if_statement "if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }" if (parenthesized_expression "(pcVar18 == (char *)0x0)" ( (binary_expression "pcVar18 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }" { (if_statement "if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }" if (parenthesized_expression "(local_7c != (char *)0x0)" ( (binary_expression "local_7c != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          RelinquishMagickMemory(local_7c);\n        }" { (expression_statement "RelinquishMagickMemory(local_7c);" (call_expression "RelinquishMagickMemory(local_7c)" identifier (argument_list "(local_7c)" ( identifier ))) ;) })) (expression_statement "DestroyQuantizeInfo(piVar15);" (call_expression "DestroyQuantizeInfo(piVar15)" identifier (argument_list "(piVar15)" ( identifier ))) ;) (expression_statement "ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);" (call_expression "ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6)" identifier (argument_list "(param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6)" ( identifier , (string_literal ""coders/palm.c"" " string_content ") , (string_literal ""WritePALMImage"" " 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 "piVar15 = (int *)param_1[3];" (assignment_expression "piVar15 = (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 ]))) ;) (while_statement "while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }" while (parenthesized_expression "(piVar9 = param_2, piVar15 != (int *)0x0)" ( (comma_expression "piVar9 = param_2, piVar15 != (int *)0x0" (assignment_expression "piVar9 = param_2" identifier = identifier) , (binary_expression "piVar15 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }" { (expression_statement "piVar15 = (int *)piVar9[0xccf];" (assignment_expression "piVar15 = (int *)piVar9[0xccf]" identifier = (cast_expression "(int *)piVar9[0xccf]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[0xccf]" identifier [ number_literal ]))) ;) (expression_statement "param_2 = piVar15;" (assignment_expression "param_2 = piVar15" identifier = identifier) ;) (expression_statement "piVar29 = piVar9;" (assignment_expression "piVar29 = piVar9" identifier = identifier) ;) })) (goto_statement "goto LAB_0026128c;" goto statement_identifier ;) })) (if_statement "if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\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_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }" { (expression_statement "local_b4 = (byte)local_a0;" (assignment_expression "local_b4 = (byte)local_a0" identifier = (cast_expression "(byte)local_a0" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (do_statement "do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);" do (compound_statement "{\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        }" { (expression_statement "memset(pcVar18,0,uVar21);" (call_expression "memset(pcVar18,0,uVar21)" identifier (argument_list "(pcVar18,0,uVar21)" ( identifier , number_literal , identifier ))) ;) (expression_statement "iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);" (assignment_expression "iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3)" identifier = (call_expression "GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3)" identifier (argument_list "(param_2,0,iVar20,param_2[6],1,param_3)" ( identifier , number_literal , identifier , (subscript_expression "param_2[6]" identifier [ number_literal ]) , number_literal , identifier )))) ;) (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_ac = param_2[6];" (assignment_expression "local_ac = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (if_statement "if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }" if (parenthesized_expression "(local_a0 == 0x10)" ( (binary_expression "local_a0 == 0x10" identifier == number_literal) )) (compound_statement "{\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }" { (if_statement "if ((int)local_ac < 1) goto LAB_0026097b;" if (parenthesized_expression "((int)local_ac < 1)" ( (binary_expression "(int)local_ac < 1" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0026097b;" goto statement_identifier ;)) (expression_statement "local_b8 = (char *)0x0;" (assignment_expression "local_b8 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);" do (compound_statement "{\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            }" { (expression_statement "iVar25 = param_2[0xaa];" (assignment_expression "iVar25 = param_2[0xaa]" identifier = (subscript_expression "param_2[0xaa]" identifier [ number_literal ])) ;) (expression_statement "dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);" (assignment_expression "dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8)" identifier = (pointer_expression "*(double *)(iVar19 + *(int *)(iVar25 + 8) * 8)" * (cast_expression "(double *)(iVar19 + *(int *)(iVar25 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + *(int *)(iVar25 + 8) * 8)" ( (binary_expression "iVar19 + *(int *)(iVar25 + 8) * 8" identifier + (binary_expression "*(int *)(iVar25 + 8) * 8" (pointer_expression "*(int *)(iVar25 + 8)" * (cast_expression "(int *)(iVar25 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 8)" ( (binary_expression "iVar25 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);" (assignment_expression "dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8)" identifier = (pointer_expression "*(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8)" * (cast_expression "(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + *(int *)(iVar25 + 0x14) * 8)" ( (binary_expression "iVar19 + *(int *)(iVar25 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar25 + 0x14) * 8" (pointer_expression "*(int *)(iVar25 + 0x14)" * (cast_expression "(int *)(iVar25 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x14)" ( (binary_expression "iVar25 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);" (assignment_expression "dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8)" identifier = (pointer_expression "*(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8)" * (cast_expression "(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + *(int *)(iVar25 + 0x20) * 8)" ( (binary_expression "iVar19 + *(int *)(iVar25 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar25 + 0x20) * 8" (pointer_expression "*(int *)(iVar25 + 0x20)" * (cast_expression "(int *)(iVar25 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x20)" ( (binary_expression "iVar25 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;" (assignment_expression "uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff" identifier = (binary_expression "(((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff" (binary_expression "(((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800" (binary_expression "(((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20" (parenthesized_expression "(((int)ROUND(dVar4) * 0x3f) / 0xffff)" ( (binary_expression "((int)ROUND(dVar4) * 0x3f) / 0xffff" (parenthesized_expression "((int)ROUND(dVar4) * 0x3f)" ( (binary_expression "(int)ROUND(dVar4) * 0x3f" (cast_expression "(int)ROUND(dVar4)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar4)" identifier (argument_list "(dVar4)" ( identifier )))) * number_literal) )) / number_literal) )) * number_literal) | (binary_expression "(((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800" (parenthesized_expression "(((int)ROUND(dVar2) * 0x1f) / 0xffff)" ( (binary_expression "((int)ROUND(dVar2) * 0x1f) / 0xffff" (parenthesized_expression "((int)ROUND(dVar2) * 0x1f)" ( (binary_expression "(int)ROUND(dVar2) * 0x1f" (cast_expression "(int)ROUND(dVar2)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier )))) * number_literal) )) / number_literal) )) * number_literal)) | (binary_expression "((int)ROUND(dVar3) * 0x1f) / 0xffff" (parenthesized_expression "((int)ROUND(dVar3) * 0x1f)" ( (binary_expression "(int)ROUND(dVar3) * 0x1f" (cast_expression "(int)ROUND(dVar3)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier )))) * number_literal) )) / number_literal))) ;) (if_statement "if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }" if (parenthesized_expression "((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0))" ( (binary_expression "(*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)" (parenthesized_expression "(*(int *)(iVar25 + 0x34) != 0)" ( (binary_expression "*(int *)(iVar25 + 0x34) != 0" (pointer_expression "*(int *)(iVar25 + 0x34)" * (cast_expression "(int *)(iVar25 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x34)" ( (binary_expression "iVar25 + 0x34" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)" ( (binary_expression "*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0" (pointer_expression "*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8)" * (cast_expression "(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + *(int *)(iVar25 + 0x38) * 8)" ( (binary_expression "iVar19 + *(int *)(iVar25 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar25 + 0x38) * 8" (pointer_expression "*(int *)(iVar25 + 0x38)" * (cast_expression "(int *)(iVar25 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x38)" ( (binary_expression "iVar25 + 0x38" identifier + number_literal) )))) * number_literal)) )))) == number_literal) ))) )) (compound_statement "{\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }" { (expression_statement "local_48 = local_48 | 0x2000;" (assignment_expression "local_48 = local_48 | 0x2000" identifier = (binary_expression "local_48 | 0x2000" identifier | number_literal)) ;) (expression_statement "local_94 = dVar2;" (assignment_expression "local_94 = dVar2" identifier = identifier) ;) (expression_statement "local_8c = dVar3;" (assignment_expression "local_8c = dVar3" identifier = identifier) ;) (expression_statement "local_84 = dVar4;" (assignment_expression "local_84 = dVar4" identifier = identifier) ;) })) (expression_statement "pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);" (assignment_expression "pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8)" (subscript_expression "pcVar18[(int)local_b8 * 2]" identifier [ (binary_expression "(int)local_b8 * 2" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]) = (cast_expression "(char)(uVar17 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar17 >> 8)" ( (binary_expression "uVar17 >> 8" identifier >> number_literal) )))) ;) (expression_statement "pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;" (assignment_expression "pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17" (subscript_expression "pcVar18[(int)local_b8 * 2 + 1]" identifier [ (binary_expression "(int)local_b8 * 2 + 1" (binary_expression "(int)local_b8 * 2" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) = (cast_expression "(char)uVar17" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "local_b8 = (char *)((int)local_b8 + 1);" (assignment_expression "local_b8 = (char *)((int)local_b8 + 1)" identifier = (cast_expression "(char *)((int)local_b8 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b8 + 1)" ( (binary_expression "(int)local_b8 + 1" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar19 = iVar19 + param_2[0xa6] * 8;" (assignment_expression "iVar19 = iVar19 + param_2[0xa6] * 8" identifier = (binary_expression "iVar19 + param_2[0xa6] * 8" identifier + (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" identifier [ number_literal ]) * number_literal))) ;) }) while (parenthesized_expression "((int)local_b8 < param_2[6])" ( (binary_expression "(int)local_b8 < param_2[6]" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) < (subscript_expression "param_2[6]" identifier [ number_literal ])) )) ;) (expression_statement "iVar19 = *param_1;" (assignment_expression "iVar19 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (iVar19 != 0x13) goto LAB_0026098a;" if (parenthesized_expression "(iVar19 != 0x13)" ( (binary_expression "iVar19 != 0x13" identifier != number_literal) )) (goto_statement "goto LAB_0026098a;" goto statement_identifier ;)) (labeled_statement "LAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }" statement_identifier : (if_statement "if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }" if (parenthesized_expression "(0 < (int)uVar21)" ( (binary_expression "0 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);" do (compound_statement "{\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              }" { (expression_statement "cVar27 = pcVar18[iVar19];" (assignment_expression "cVar27 = pcVar18[iVar19]" identifier = (subscript_expression "pcVar18[iVar19]" identifier [ identifier ])) ;) (expression_statement "iVar25 = iVar19 + 1;" (assignment_expression "iVar25 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (if_statement "if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }" if (parenthesized_expression "(cVar27 == pcVar18[iVar19 + 1])" ( (binary_expression "cVar27 == pcVar18[iVar19 + 1]" identifier == (subscript_expression "pcVar18[iVar19 + 1]" identifier [ (binary_expression "iVar19 + 1" identifier + number_literal) ])) )) (compound_statement "{\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }" { (if_statement "if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }" if (parenthesized_expression "((int)uVar21 <= iVar25)" ( (binary_expression "(int)uVar21 <= iVar25" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }" { (expression_statement "WriteBlobByte(param_2,1);" (call_expression "WriteBlobByte(param_2,1)" identifier (argument_list "(param_2,1)" ( identifier , number_literal ))) ;) (expression_statement "WriteBlobByte(param_2,cVar27);" (call_expression "WriteBlobByte(param_2,cVar27)" identifier (argument_list "(param_2,cVar27)" ( identifier , identifier ))) ;) (break_statement "break;" break ;) })) (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) (do_statement "do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);" do (compound_statement "{\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  }" { (expression_statement "uVar17 = uVar17 + 1;" (assignment_expression "uVar17 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) (expression_statement "iVar25 = iVar19 + uVar17;" (assignment_expression "iVar25 = iVar19 + uVar17" identifier = (binary_expression "iVar19 + uVar17" identifier + identifier)) ;) (if_statement "if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;" if (parenthesized_expression "(((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17))" ( (binary_expression "((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)" (parenthesized_expression "((pcVar18 + iVar19)[uVar17] != cVar27)" ( (binary_expression "(pcVar18 + iVar19)[uVar17] != cVar27" (subscript_expression "(pcVar18 + iVar19)[uVar17]" (parenthesized_expression "(pcVar18 + iVar19)" ( (binary_expression "pcVar18 + iVar19" identifier + identifier) )) [ identifier ]) != identifier) )) || (parenthesized_expression "(0xfe < uVar17)" ( (binary_expression "0xfe < uVar17" number_literal < identifier) ))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(iVar25 < (int)uVar21)" ( (binary_expression "iVar25 < (int)uVar21" identifier < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) }) (else_clause "else {\n                  uVar17 = 1;\n                }" else (compound_statement "{\n                  uVar17 = 1;\n                }" { (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) }))) (expression_statement "WriteBlobByte(param_2,uVar17);" (call_expression "WriteBlobByte(param_2,uVar17)" identifier (argument_list "(param_2,uVar17)" ( identifier , identifier ))) ;) (expression_statement "WriteBlobByte(param_2,cVar27);" (call_expression "WriteBlobByte(param_2,cVar27)" identifier (argument_list "(param_2,cVar27)" ( identifier , identifier ))) ;) (expression_statement "iVar19 = iVar25;" (assignment_expression "iVar19 = iVar25" identifier = identifier) ;) }) while (parenthesized_expression "(iVar25 < (int)uVar21)" ( (binary_expression "iVar25 < (int)uVar21" identifier < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) }))) }) (else_clause "else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }" else (compound_statement "{\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }" { (expression_statement "uVar17 = (uint)(byte)(8 - local_45);" (assignment_expression "uVar17 = (uint)(byte)(8 - local_45)" identifier = (call_expression "(uint)(byte)(8 - local_45)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(8 - local_45)" ( (binary_expression "8 - local_45" number_literal - identifier) )))) ;) (expression_statement "local_b8 = pcVar18;" (assignment_expression "local_b8 = pcVar18" identifier = identifier) ;) (if_statement "if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }" if (parenthesized_expression "((int)local_ac < 1)" ( (binary_expression "(int)local_ac < 1" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              cVar27 = '\0';\n            }" { (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }" else (if_statement "if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }" if (parenthesized_expression "(local_a0 < 8)" ( (binary_expression "local_a0 < 8" identifier < number_literal) )) (compound_statement "{\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }" { (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = uVar17;" (assignment_expression "uVar23 = uVar17" identifier = identifier) ;) (do_statement "do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);" do (compound_statement "{\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              }" { (while_statement "while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }" { (if_statement "if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }" if (parenthesized_expression "(*(int *)(param_2[0xaa] + 0x40) == 0)" ( (binary_expression "*(int *)(param_2[0xaa] + 0x40) == 0" (pointer_expression "*(int *)(param_2[0xaa] + 0x40)" * (cast_expression "(int *)(param_2[0xaa] + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0xaa] + 0x40)" ( (binary_expression "param_2[0xaa] + 0x40" (subscript_expression "param_2[0xaa]" identifier [ number_literal ]) + number_literal) )))) == number_literal) )) (compound_statement "{\n                    dVar2 = 0.0;\n                  }" { (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }" else (compound_statement "{\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }" { (expression_statement "dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);" (assignment_expression "dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8)" identifier = (pointer_expression "*(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8)" * (cast_expression "(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8)" ( (binary_expression "iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8" identifier + (binary_expression "*(int *)(param_2[0xaa] + 0x44) * 8" (pointer_expression "*(int *)(param_2[0xaa] + 0x44)" * (cast_expression "(int *)(param_2[0xaa] + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0xaa] + 0x44)" ( (binary_expression "param_2[0xaa] + 0x44" (subscript_expression "param_2[0xaa]" identifier [ number_literal ]) + number_literal) )))) * number_literal)) ))))) ;) }))) (expression_statement "dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);" (assignment_expression "dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1)" identifier = (binary_expression "dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1)" identifier * (cast_expression "(double)((1 << (local_b4 & 0x1f)) + -1)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((1 << (local_b4 & 0x1f)) + -1)" ( (binary_expression "(1 << (local_b4 & 0x1f)) + -1" (parenthesized_expression "(1 << (local_b4 & 0x1f))" ( (binary_expression "1 << (local_b4 & 0x1f)" number_literal << (parenthesized_expression "(local_b4 & 0x1f)" ( (binary_expression "local_b4 & 0x1f" identifier & number_literal) ))) )) + number_literal) ))))) ;) (if_statement "if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }" if (parenthesized_expression "(1 < param_2[9] - 1U)" ( (binary_expression "1 < param_2[9] - 1U" number_literal < (binary_expression "param_2[9] - 1U" (subscript_expression "param_2[9]" identifier [ number_literal ]) - number_literal)) )) (compound_statement "{\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }" { (expression_statement "local_cc = (ulonglong)(param_2[9] - 1U);" (assignment_expression "local_cc = (ulonglong)(param_2[9] - 1U)" identifier = (call_expression "(ulonglong)(param_2[9] - 1U)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(param_2[9] - 1U)" ( (binary_expression "param_2[9] - 1U" (subscript_expression "param_2[9]" identifier [ number_literal ]) - number_literal) )))) ;) (expression_statement "dVar2 = dVar2 / (double)local_cc;" (assignment_expression "dVar2 = dVar2 / (double)local_cc" identifier = (binary_expression "dVar2 / (double)local_cc" identifier / (cast_expression "(double)local_cc" ( (type_descriptor "double" primitive_type) ) identifier))) ;) })) (expression_statement "uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);" (assignment_expression "uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f)" identifier = (binary_expression "uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f)" identifier | (binary_expression "(uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f)" (cast_expression "(uint)(byte)(short)ROUND(dVar2)" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)(short)ROUND(dVar2)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar2)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier )))))) << (parenthesized_expression "((byte)uVar23 & 0x1f)" ( (binary_expression "(byte)uVar23 & 0x1f" (cast_expression "(byte)uVar23" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) (expression_statement "cVar27 = (char)uVar28;" (assignment_expression "cVar27 = (char)uVar28" identifier = (cast_expression "(char)uVar28" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (uVar23 != 0) break;" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "*local_b8 = cVar27;" (assignment_expression "*local_b8 = cVar27" (pointer_expression "*local_b8" * identifier) = identifier) ;) (expression_statement "iVar19 = iVar19 + param_2[0xa6] * 8;" (assignment_expression "iVar19 = iVar19 + param_2[0xa6] * 8" identifier = (binary_expression "iVar19 + param_2[0xa6] * 8" identifier + (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" identifier [ number_literal ]) * number_literal))) ;) (expression_statement "local_ac = param_2[6];" (assignment_expression "local_ac = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (if_statement "if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }" if (parenthesized_expression "((int)local_ac <= iVar25)" ( (binary_expression "(int)local_ac <= iVar25" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }" { (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_b8 = local_b8 + 1;" (assignment_expression "local_b8 = local_b8 + 1" identifier = (binary_expression "local_b8 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0026095c;" goto statement_identifier ;) })) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = uVar17;" (assignment_expression "uVar23 = uVar17" identifier = identifier) ;) (expression_statement "local_b8 = local_b8 + 1;" (assignment_expression "local_b8 = local_b8 + 1" identifier = (binary_expression "local_b8 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "iVar19 = iVar19 + param_2[0xa6] * 8;" (assignment_expression "iVar19 = iVar19 + param_2[0xa6] * 8" identifier = (binary_expression "iVar19 + param_2[0xa6] * 8" identifier + (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" identifier [ number_literal ]) * number_literal))) ;) (expression_statement "local_ac = param_2[6];" (assignment_expression "local_ac = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "uVar23 = uVar23 - local_a0;" (assignment_expression "uVar23 = uVar23 - local_a0" identifier = (binary_expression "uVar23 - local_a0" identifier - identifier)) ;) }) while (parenthesized_expression "(iVar25 < (int)local_ac)" ( (binary_expression "iVar25 < (int)local_ac" identifier < (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) }) (else_clause "else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }" else (compound_statement "{\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }" { (expression_statement "local_b8 = (char *)param_2[0xaa];" (assignment_expression "local_b8 = (char *)param_2[0xaa]" identifier = (cast_expression "(char *)param_2[0xaa]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[0xaa]" identifier [ number_literal ]))) ;) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = uVar17;" (assignment_expression "uVar23 = uVar17" identifier = identifier) ;) (expression_statement "local_9c = pcVar18;" (assignment_expression "local_9c = pcVar18" identifier = identifier) ;) (do_statement "do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);" do (compound_statement "{\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              }" { (while_statement "while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }" { (if_statement "if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }" if (parenthesized_expression "(*(int *)((int)local_b8 + 0x40) != 0)" ( (binary_expression "*(int *)((int)local_b8 + 0x40) != 0" (pointer_expression "*(int *)((int)local_b8 + 0x40)" * (cast_expression "(int *)((int)local_b8 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b8 + 0x40)" ( (binary_expression "(int)local_b8 + 0x40" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }" { (expression_statement "uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);" (assignment_expression "uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f)" identifier = (binary_expression "uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f)" identifier | (binary_expression "(uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f)" (cast_expression "(uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8))" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8))" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8))" identifier (argument_list "(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8))" ( (pointer_expression "*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)" * (cast_expression "(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)" ( (binary_expression "iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8" identifier + (binary_expression "*(int *)((int)local_b8 +\n                                                                                  0x44) * 8" (pointer_expression "*(int *)((int)local_b8 +\n                                                                                  0x44)" * (cast_expression "(int *)((int)local_b8 +\n                                                                                  0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b8 +\n                                                                                  0x44)" ( (binary_expression "(int)local_b8 +\n                                                                                  0x44" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) * number_literal)) )))) )))))) << (parenthesized_expression "((byte)uVar23 & 0x1f)" ( (binary_expression "(byte)uVar23 & 0x1f" (cast_expression "(byte)uVar23" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) })) (expression_statement "cVar27 = (char)uVar28;" (assignment_expression "cVar27 = (char)uVar28" identifier = (cast_expression "(char)uVar28" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (uVar23 != 0) break;" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "*local_9c = cVar27;" (assignment_expression "*local_9c = cVar27" (pointer_expression "*local_9c" * identifier) = identifier) ;) (expression_statement "local_ac = param_2[6];" (assignment_expression "local_ac = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "iVar19 = iVar19 + param_2[0xa6] * 8;" (assignment_expression "iVar19 = iVar19 + param_2[0xa6] * 8" identifier = (binary_expression "iVar19 + param_2[0xa6] * 8" identifier + (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" identifier [ number_literal ]) * number_literal))) ;) (if_statement "if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }" if (parenthesized_expression "((int)local_ac <= iVar25)" ( (binary_expression "(int)local_ac <= iVar25" (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }" { (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_b8 = local_9c + 1;" (assignment_expression "local_b8 = local_9c + 1" identifier = (binary_expression "local_9c + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0026095c;" goto statement_identifier ;) })) (expression_statement "local_b8 = (char *)param_2[0xaa];" (assignment_expression "local_b8 = (char *)param_2[0xaa]" identifier = (cast_expression "(char *)param_2[0xaa]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[0xaa]" identifier [ number_literal ]))) ;) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = uVar17;" (assignment_expression "uVar23 = uVar17" identifier = identifier) ;) (expression_statement "local_9c = local_9c + 1;" (assignment_expression "local_9c = local_9c + 1" identifier = (binary_expression "local_9c + 1" identifier + number_literal)) ;) })) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "iVar19 = iVar19 + param_2[0xa6] * 8;" (assignment_expression "iVar19 = iVar19 + param_2[0xa6] * 8" identifier = (binary_expression "iVar19 + param_2[0xa6] * 8" identifier + (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" identifier [ number_literal ]) * number_literal))) ;) (expression_statement "uVar23 = uVar23 - local_a0;" (assignment_expression "uVar23 = uVar23 - local_a0" identifier = (binary_expression "uVar23 - local_a0" identifier - identifier)) ;) }) while (parenthesized_expression "(iVar25 < (int)local_ac)" ( (binary_expression "iVar25 < (int)local_ac" identifier < (cast_expression "(int)local_ac" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "local_b8 = local_9c;" (assignment_expression "local_b8 = local_9c" identifier = identifier) ;) }))))) (labeled_statement "LAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }" statement_identifier : (if_statement "if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }" if (parenthesized_expression "((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0)" ( (binary_expression "(int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0" (cast_expression "(int)((ulonglong)local_ac % (8 / (ulonglong)local_a0))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)local_ac % (8 / (ulonglong)local_a0))" ( (binary_expression "(ulonglong)local_ac % (8 / (ulonglong)local_a0)" (cast_expression "(ulonglong)local_ac" ( (type_descriptor "ulonglong" type_identifier) ) identifier) % (parenthesized_expression "(8 / (ulonglong)local_a0)" ( (binary_expression "8 / (ulonglong)local_a0" number_literal / (cast_expression "(ulonglong)local_a0" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ))) ))) != number_literal) )) (compound_statement "{\n              *local_b8 = cVar27;\n            }" { (expression_statement "*local_b8 = cVar27;" (assignment_expression "*local_b8 = cVar27" (pointer_expression "*local_b8" * identifier) = identifier) ;) }))) (labeled_statement "LAB_0026097b:\n            iVar19 = *param_1;" statement_identifier : (expression_statement "iVar19 = *param_1;" (assignment_expression "iVar19 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;)) (if_statement "if (iVar19 == 0x13) goto LAB_00260d43;" if (parenthesized_expression "(iVar19 == 0x13)" ( (binary_expression "iVar19 == 0x13" identifier == number_literal) )) (goto_statement "goto LAB_00260d43;" goto statement_identifier ;)) (labeled_statement "LAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }" statement_identifier : (if_statement "if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }" if (parenthesized_expression "(iVar19 == 7)" ( (binary_expression "iVar19 == 7" identifier == number_literal) )) (compound_statement "{\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }" { (if_statement "if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }" if (parenthesized_expression "(0 < (int)uVar21)" ( (binary_expression "0 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }" { (expression_statement "pcVar24 = pcVar18;" (assignment_expression "pcVar24 = pcVar18" identifier = identifier) ;) (expression_statement "uVar17 = uVar21;" (assignment_expression "uVar17 = uVar21" identifier = identifier) ;) (expression_statement "pcVar1 = local_7c;" (assignment_expression "pcVar1 = local_7c" identifier = identifier) ;) (do_statement "do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);" do (compound_statement "{\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                }" { (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }" if (parenthesized_expression "((int)uVar17 < 9)" ( (binary_expression "(int)uVar17 < 9" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    uVar23 = uVar17;\n                  }" { (expression_statement "uVar23 = uVar17;" (assignment_expression "uVar23 = uVar17" identifier = identifier) ;) })) (if_statement "if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }" { (expression_statement "local_28[0] = *pcVar24;" (assignment_expression "local_28[0] = *pcVar24" (subscript_expression "local_28[0]" identifier [ number_literal ]) = (pointer_expression "*pcVar24" * identifier)) ;) (if_statement "if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" if (parenthesized_expression "(uVar17 == 1)" ( (binary_expression "uVar17 == 1" identifier == number_literal) )) (compound_statement "{\n                      bVar10 = 0x80;\n                    }" { (expression_statement "bVar10 = 0x80;" (assignment_expression "bVar10 = 0x80" identifier = number_literal) ;) }) (else_clause "else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" else (compound_statement "{\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" { (expression_statement "local_28[1] = pcVar24[1];" (assignment_expression "local_28[1] = pcVar24[1]" (subscript_expression "local_28[1]" identifier [ number_literal ]) = (subscript_expression "pcVar24[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" if (parenthesized_expression "(uVar17 == 2)" ( (binary_expression "uVar17 == 2" identifier == number_literal) )) (compound_statement "{\n                        bVar10 = 0xc0;\n                      }" { (expression_statement "bVar10 = 0xc0;" (assignment_expression "bVar10 = 0xc0" identifier = number_literal) ;) }) (else_clause "else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" else (compound_statement "{\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" { (expression_statement "local_28[2] = pcVar24[2];" (assignment_expression "local_28[2] = pcVar24[2]" (subscript_expression "local_28[2]" identifier [ number_literal ]) = (subscript_expression "pcVar24[2]" identifier [ number_literal ])) ;) (if_statement "if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }" if (parenthesized_expression "(uVar17 == 3)" ( (binary_expression "uVar17 == 3" identifier == number_literal) )) (compound_statement "{\n                          bVar10 = 0xe0;\n                        }" { (expression_statement "bVar10 = 0xe0;" (assignment_expression "bVar10 = 0xe0" identifier = number_literal) ;) }) (else_clause "else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }" else (compound_statement "{\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }" { (expression_statement "local_28[3] = pcVar24[3];" (assignment_expression "local_28[3] = pcVar24[3]" (subscript_expression "local_28[3]" identifier [ number_literal ]) = (subscript_expression "pcVar24[3]" identifier [ number_literal ])) ;) (if_statement "if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }" if (parenthesized_expression "(uVar17 == 4)" ( (binary_expression "uVar17 == 4" identifier == number_literal) )) (compound_statement "{\n                            bVar10 = 0xf0;\n                          }" { (expression_statement "bVar10 = 0xf0;" (assignment_expression "bVar10 = 0xf0" identifier = number_literal) ;) }) (else_clause "else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }" else (compound_statement "{\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }" { (expression_statement "local_24 = pcVar24[4];" (assignment_expression "local_24 = pcVar24[4]" identifier = (subscript_expression "pcVar24[4]" identifier [ number_literal ])) ;) (if_statement "if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }" if (parenthesized_expression "(uVar17 == 5)" ( (binary_expression "uVar17 == 5" identifier == number_literal) )) (compound_statement "{\n                              bVar10 = 0xf8;\n                            }" { (expression_statement "bVar10 = 0xf8;" (assignment_expression "bVar10 = 0xf8" identifier = number_literal) ;) }) (else_clause "else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }" else (compound_statement "{\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }" { (expression_statement "local_23 = pcVar24[5];" (assignment_expression "local_23 = pcVar24[5]" identifier = (subscript_expression "pcVar24[5]" identifier [ number_literal ])) ;) (if_statement "if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }" if (parenthesized_expression "(uVar17 == 6)" ( (binary_expression "uVar17 == 6" identifier == number_literal) )) (compound_statement "{\n                                bVar10 = 0xfc;\n                              }" { (expression_statement "bVar10 = 0xfc;" (assignment_expression "bVar10 = 0xfc" identifier = number_literal) ;) }) (else_clause "else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }" else (compound_statement "{\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }" { (expression_statement "local_22 = pcVar24[6];" (assignment_expression "local_22 = pcVar24[6]" identifier = (subscript_expression "pcVar24[6]" identifier [ number_literal ])) ;) (if_statement "if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }" if (parenthesized_expression "((int)uVar17 < 8)" ( (binary_expression "(int)uVar17 < 8" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                                  bVar10 = 0xfe;\n                                }" { (expression_statement "bVar10 = 0xfe;" (assignment_expression "bVar10 = 0xfe" identifier = number_literal) ;) }) (else_clause "else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }" else (compound_statement "{\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }" { (expression_statement "local_21 = pcVar24[7];" (assignment_expression "local_21 = pcVar24[7]" identifier = (subscript_expression "pcVar24[7]" identifier [ number_literal ])) ;) (expression_statement "bVar10 = 0xff;" (assignment_expression "bVar10 = 0xff" identifier = number_literal) ;) }))) }))) }))) }))) }))) }))) }))) (expression_statement "local_78 = local_28 + uVar23;" (assignment_expression "local_78 = local_28 + uVar23" identifier = (binary_expression "local_28 + uVar23" identifier + identifier)) ;) }) (else_clause "else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" else (compound_statement "{\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" { (if_statement "if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }" if (parenthesized_expression "(*pcVar24 == *pcVar1)" ( (binary_expression "*pcVar24 == *pcVar1" (pointer_expression "*pcVar24" * identifier) == (pointer_expression "*pcVar1" * identifier)) )) (compound_statement "{\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }" { (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (expression_statement "local_78 = local_28;" (assignment_expression "local_78 = local_28" identifier = identifier) ;) }) (else_clause "else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }" else (compound_statement "{\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }" { (expression_statement "bVar10 = 0x80;" (assignment_expression "bVar10 = 0x80" identifier = number_literal) ;) (expression_statement "local_78 = local_28 + 1;" (assignment_expression "local_78 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) (expression_statement "local_28[0] = *pcVar24;" (assignment_expression "local_28[0] = *pcVar24" (subscript_expression "local_28[0]" identifier [ number_literal ]) = (pointer_expression "*pcVar24" * identifier)) ;) }))) (if_statement "if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" if (parenthesized_expression "(uVar17 != 1)" ( (binary_expression "uVar17 != 1" identifier != number_literal) )) (compound_statement "{\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" { (expression_statement "local_b0 = local_78;" (assignment_expression "local_b0 = local_78" identifier = identifier) ;) (if_statement "if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }" if (parenthesized_expression "(pcVar1[1] != pcVar24[1])" ( (binary_expression "pcVar1[1] != pcVar24[1]" (subscript_expression "pcVar1[1]" identifier [ number_literal ]) != (subscript_expression "pcVar24[1]" identifier [ number_literal ])) )) (compound_statement "{\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }" { (expression_statement "local_b0 = local_78 + 1;" (assignment_expression "local_b0 = local_78 + 1" identifier = (binary_expression "local_78 + 1" identifier + number_literal)) ;) (expression_statement "bVar10 = bVar10 | 0x40;" (assignment_expression "bVar10 = bVar10 | 0x40" identifier = (binary_expression "bVar10 | 0x40" identifier | number_literal)) ;) (expression_statement "*local_78 = pcVar24[1];" (assignment_expression "*local_78 = pcVar24[1]" (pointer_expression "*local_78" * identifier) = (subscript_expression "pcVar24[1]" identifier [ number_literal ])) ;) })) (expression_statement "local_78 = local_b0;" (assignment_expression "local_78 = local_b0" identifier = identifier) ;) (if_statement "if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" if (parenthesized_expression "(uVar17 != 2)" ( (binary_expression "uVar17 != 2" identifier != number_literal) )) (compound_statement "{\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" { (if_statement "if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }" if (parenthesized_expression "(pcVar1[2] != pcVar24[2])" ( (binary_expression "pcVar1[2] != pcVar24[2]" (subscript_expression "pcVar1[2]" identifier [ number_literal ]) != (subscript_expression "pcVar24[2]" identifier [ number_literal ])) )) (compound_statement "{\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }" { (expression_statement "bVar10 = bVar10 | 0x20;" (assignment_expression "bVar10 = bVar10 | 0x20" identifier = (binary_expression "bVar10 | 0x20" identifier | number_literal)) ;) (expression_statement "local_78 = local_b0 + 1;" (assignment_expression "local_78 = local_b0 + 1" identifier = (binary_expression "local_b0 + 1" identifier + number_literal)) ;) (expression_statement "*local_b0 = pcVar24[2];" (assignment_expression "*local_b0 = pcVar24[2]" (pointer_expression "*local_b0" * identifier) = (subscript_expression "pcVar24[2]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }" if (parenthesized_expression "(uVar17 != 3)" ( (binary_expression "uVar17 != 3" identifier != number_literal) )) (compound_statement "{\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }" { (expression_statement "local_b0 = local_78;" (assignment_expression "local_b0 = local_78" identifier = identifier) ;) (if_statement "if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }" if (parenthesized_expression "(pcVar1[3] != pcVar24[3])" ( (binary_expression "pcVar1[3] != pcVar24[3]" (subscript_expression "pcVar1[3]" identifier [ number_literal ]) != (subscript_expression "pcVar24[3]" identifier [ number_literal ])) )) (compound_statement "{\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }" { (expression_statement "local_b0 = local_78 + 1;" (assignment_expression "local_b0 = local_78 + 1" identifier = (binary_expression "local_78 + 1" identifier + number_literal)) ;) (expression_statement "bVar10 = bVar10 | 0x10;" (assignment_expression "bVar10 = bVar10 | 0x10" identifier = (binary_expression "bVar10 | 0x10" identifier | number_literal)) ;) (expression_statement "*local_78 = pcVar24[3];" (assignment_expression "*local_78 = pcVar24[3]" (pointer_expression "*local_78" * identifier) = (subscript_expression "pcVar24[3]" identifier [ number_literal ])) ;) })) (expression_statement "local_78 = local_b0;" (assignment_expression "local_78 = local_b0" identifier = identifier) ;) (if_statement "if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }" if (parenthesized_expression "(uVar17 != 4)" ( (binary_expression "uVar17 != 4" identifier != number_literal) )) (compound_statement "{\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }" { (if_statement "if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }" if (parenthesized_expression "(pcVar1[4] != pcVar24[4])" ( (binary_expression "pcVar1[4] != pcVar24[4]" (subscript_expression "pcVar1[4]" identifier [ number_literal ]) != (subscript_expression "pcVar24[4]" identifier [ number_literal ])) )) (compound_statement "{\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }" { (expression_statement "bVar10 = bVar10 | 8;" (assignment_expression "bVar10 = bVar10 | 8" identifier = (binary_expression "bVar10 | 8" identifier | number_literal)) ;) (expression_statement "local_78 = local_b0 + 1;" (assignment_expression "local_78 = local_b0 + 1" identifier = (binary_expression "local_b0 + 1" identifier + number_literal)) ;) (expression_statement "*local_b0 = pcVar24[4];" (assignment_expression "*local_b0 = pcVar24[4]" (pointer_expression "*local_b0" * identifier) = (subscript_expression "pcVar24[4]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }" if (parenthesized_expression "(uVar17 != 5)" ( (binary_expression "uVar17 != 5" identifier != number_literal) )) (compound_statement "{\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }" { (expression_statement "local_b0 = local_78;" (assignment_expression "local_b0 = local_78" identifier = identifier) ;) (if_statement "if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }" if (parenthesized_expression "(pcVar1[5] != pcVar24[5])" ( (binary_expression "pcVar1[5] != pcVar24[5]" (subscript_expression "pcVar1[5]" identifier [ number_literal ]) != (subscript_expression "pcVar24[5]" identifier [ number_literal ])) )) (compound_statement "{\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }" { (expression_statement "local_b0 = local_78 + 1;" (assignment_expression "local_b0 = local_78 + 1" identifier = (binary_expression "local_78 + 1" identifier + number_literal)) ;) (expression_statement "bVar10 = bVar10 | 4;" (assignment_expression "bVar10 = bVar10 | 4" identifier = (binary_expression "bVar10 | 4" identifier | number_literal)) ;) (expression_statement "*local_78 = pcVar24[5];" (assignment_expression "*local_78 = pcVar24[5]" (pointer_expression "*local_78" * identifier) = (subscript_expression "pcVar24[5]" identifier [ number_literal ])) ;) })) (expression_statement "local_78 = local_b0;" (assignment_expression "local_78 = local_b0" identifier = identifier) ;) (if_statement "if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }" if (parenthesized_expression "(uVar17 != 6)" ( (binary_expression "uVar17 != 6" identifier != number_literal) )) (compound_statement "{\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }" { (if_statement "if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }" if (parenthesized_expression "(pcVar1[6] != pcVar24[6])" ( (binary_expression "pcVar1[6] != pcVar24[6]" (subscript_expression "pcVar1[6]" identifier [ number_literal ]) != (subscript_expression "pcVar24[6]" identifier [ number_literal ])) )) (compound_statement "{\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }" { (expression_statement "bVar10 = bVar10 | 2;" (assignment_expression "bVar10 = bVar10 | 2" identifier = (binary_expression "bVar10 | 2" identifier | number_literal)) ;) (expression_statement "local_78 = local_b0 + 1;" (assignment_expression "local_78 = local_b0 + 1" identifier = (binary_expression "local_b0 + 1" identifier + number_literal)) ;) (expression_statement "*local_b0 = pcVar24[6];" (assignment_expression "*local_b0 = pcVar24[6]" (pointer_expression "*local_b0" * identifier) = (subscript_expression "pcVar24[6]" identifier [ number_literal ])) ;) })) (if_statement "if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }" if (parenthesized_expression "((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7]))" ( (binary_expression "(7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])" (parenthesized_expression "(7 < (int)uVar17)" ( (binary_expression "7 < (int)uVar17" number_literal < (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(pcVar1[7] != pcVar24[7])" ( (binary_expression "pcVar1[7] != pcVar24[7]" (subscript_expression "pcVar1[7]" identifier [ number_literal ]) != (subscript_expression "pcVar24[7]" identifier [ number_literal ])) ))) )) (compound_statement "{\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }" { (expression_statement "bVar10 = bVar10 | 1;" (assignment_expression "bVar10 = bVar10 | 1" identifier = (binary_expression "bVar10 | 1" identifier | number_literal)) ;) (expression_statement "*local_78 = pcVar24[7];" (assignment_expression "*local_78 = pcVar24[7]" (pointer_expression "*local_78" * identifier) = (subscript_expression "pcVar24[7]" identifier [ number_literal ])) ;) (expression_statement "local_78 = local_78 + 1;" (assignment_expression "local_78 = local_78 + 1" identifier = (binary_expression "local_78 + 1" identifier + number_literal)) ;) })) })) })) })) })) })) })) }))) (expression_statement "uVar17 = uVar17 - 8;" (assignment_expression "uVar17 = uVar17 - 8" identifier = (binary_expression "uVar17 - 8" identifier - number_literal)) ;) (expression_statement "WriteBlobByte(param_2,bVar10);" (call_expression "WriteBlobByte(param_2,bVar10)" identifier (argument_list "(param_2,bVar10)" ( identifier , identifier ))) ;) (expression_statement "WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);" (call_expression "WriteBlob(param_2,(int)local_78 - (int)local_28,local_28)" identifier (argument_list "(param_2,(int)local_78 - (int)local_28,local_28)" ( identifier , (binary_expression "(int)local_78 - (int)local_28" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier ))) ;) (expression_statement "pcVar1 = pcVar1 + 8;" (assignment_expression "pcVar1 = pcVar1 + 8" identifier = (binary_expression "pcVar1 + 8" identifier + number_literal)) ;) (expression_statement "pcVar24 = pcVar24 + 8;" (assignment_expression "pcVar24 = pcVar24 + 8" identifier = (binary_expression "pcVar24 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17)" ( (binary_expression "(uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17" (binary_expression "(uVar21 - 8) - (uVar21 - 1 & 0xfffffff8)" (parenthesized_expression "(uVar21 - 8)" ( (binary_expression "uVar21 - 8" identifier - number_literal) )) - (parenthesized_expression "(uVar21 - 1 & 0xfffffff8)" ( (binary_expression "uVar21 - 1 & 0xfffffff8" (binary_expression "uVar21 - 1" identifier - number_literal) & number_literal) ))) != identifier) )) ;) })) (expression_statement "memcpy(local_7c,pcVar18,uVar21);" (call_expression "memcpy(local_7c,pcVar18,uVar21)" identifier (argument_list "(local_7c,pcVar18,uVar21)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }" else (compound_statement "{\n              WriteBlob(param_2,uVar21,pcVar18);\n            }" { (expression_statement "WriteBlob(param_2,uVar21,pcVar18);" (call_expression "WriteBlob(param_2,uVar21,pcVar18)" identifier (argument_list "(param_2,uVar21,pcVar18)" ( identifier , identifier , identifier ))) ;) })))) }))) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar20 < param_2[7])" ( (binary_expression "iVar20 < param_2[7]" identifier < (subscript_expression "param_2[7]" identifier [ number_literal ])) )) ;) })) (if_statement "if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }" if (parenthesized_expression "((local_48 & 0x2000) != 0)" ( (binary_expression "(local_48 & 0x2000) != 0" (parenthesized_expression "(local_48 & 0x2000)" ( (binary_expression "local_48 & 0x2000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }" { (expression_statement "SeekBlob(param_2,lVar31 + 6,0);" (call_expression "SeekBlob(param_2,lVar31 + 6,0)" identifier (argument_list "(param_2,lVar31 + 6,0)" ( identifier , (binary_expression "lVar31 + 6" identifier + number_literal) , number_literal ))) ;) (expression_statement "WriteBlobMSBShort(param_2,local_48);" (call_expression "WriteBlobMSBShort(param_2,local_48)" identifier (argument_list "(param_2,local_48)" ( identifier , identifier ))) ;) (expression_statement "lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);" (assignment_expression "lVar32 = SeekBlob(param_2,lVar31 + 0xc,0)" identifier = (call_expression "SeekBlob(param_2,lVar31 + 0xc,0)" identifier (argument_list "(param_2,lVar31 + 0xc,0)" ( identifier , (binary_expression "lVar31 + 0xc" identifier + number_literal) , number_literal )))) ;) (expression_statement "WriteBlobByte(param_2,0);" (call_expression "WriteBlobByte(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) })) (if_statement "if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }" if (parenthesized_expression "(local_a0 == 0x10)" ( (binary_expression "local_a0 == 0x10" identifier == number_literal) )) (compound_statement "{\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }" { (expression_statement "lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);" (assignment_expression "lVar32 = SeekBlob(param_2,lVar31 + 0x14,0)" identifier = (call_expression "SeekBlob(param_2,lVar31 + 0x14,0)" identifier (argument_list "(param_2,lVar31 + 0x14,0)" ( identifier , (binary_expression "lVar31 + 0x14" identifier + number_literal) , number_literal )))) ;) (expression_statement "WriteBlobByte(param_2,0);" (call_expression "WriteBlobByte(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "dVar2 = (double)DAT_00306a38;" (assignment_expression "dVar2 = (double)DAT_00306a38" identifier = (cast_expression "(double)DAT_00306a38" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "dVar4 = (double)DAT_002df8a8;" (assignment_expression "dVar4 = (double)DAT_002df8a8" identifier = (cast_expression "(double)DAT_002df8a8" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));" (call_expression "WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8))" identifier (argument_list "(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8))" ( identifier , (cast_expression "(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8)" ( (type_descriptor "char" primitive_type) ) (cast_expression "(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8)" identifier (argument_list "(((float)local_94 * DAT_00306a38) / DAT_002df8a8)" ( (binary_expression "((float)local_94 * DAT_00306a38) / DAT_002df8a8" (parenthesized_expression "((float)local_94 * DAT_00306a38)" ( (binary_expression "(float)local_94 * DAT_00306a38" (cast_expression "(float)local_94" ( (type_descriptor "float" primitive_type) ) identifier) * identifier) )) / identifier) ))))) ))) ;) (expression_statement "WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));" (call_expression "WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4))" identifier (argument_list "(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4))" ( identifier , (cast_expression "(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4)" ( (type_descriptor "char" primitive_type) ) (cast_expression "(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND((local_84 * (double)DAT_0030d3a4) / dVar4)" identifier (argument_list "((local_84 * (double)DAT_0030d3a4) / dVar4)" ( (binary_expression "(local_84 * (double)DAT_0030d3a4) / dVar4" (parenthesized_expression "(local_84 * (double)DAT_0030d3a4)" ( (binary_expression "local_84 * (double)DAT_0030d3a4" identifier * (cast_expression "(double)DAT_0030d3a4" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier) ))))) ))) ;) (expression_statement "WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));" (call_expression "WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4))" identifier (argument_list "(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4))" ( identifier , (cast_expression "(char)(short)ROUND((dVar2 * local_8c) / dVar4)" ( (type_descriptor "char" primitive_type) ) (cast_expression "(short)ROUND((dVar2 * local_8c) / dVar4)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND((dVar2 * local_8c) / dVar4)" identifier (argument_list "((dVar2 * local_8c) / dVar4)" ( (binary_expression "(dVar2 * local_8c) / dVar4" (parenthesized_expression "(dVar2 * local_8c)" ( (binary_expression "dVar2 * local_8c" identifier * identifier) )) / identifier) ))))) ))) ;) })) (if_statement "if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }" if (parenthesized_expression "((short)local_48 < 0)" ( (binary_expression "(short)local_48 < 0" (cast_expression "(short)local_48" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) < number_literal) )) (compound_statement "{\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }" { (expression_statement "sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);" (assignment_expression "sVar12 = SeekBlob(param_2,lVar32 + lVar31,0)" identifier = (call_expression "SeekBlob(param_2,lVar32 + lVar31,0)" identifier (argument_list "(param_2,lVar32 + lVar31,0)" ( identifier , (binary_expression "lVar32 + lVar31" identifier + identifier) , number_literal )))) ;) (expression_statement "sVar13 = GetBlobSize(param_2);" (assignment_expression "sVar13 = GetBlobSize(param_2)" identifier = (call_expression "GetBlobSize(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "local_74._0_2_ = (short)lVar31;" (assignment_expression "local_74._0_2_ = (short)lVar31" (field_expression "local_74._0_2_" identifier . field_identifier) = (cast_expression "(short)lVar31" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);" (call_expression "WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12)" identifier (argument_list "(param_2,(sVar13 - (short)local_74) - sVar12)" ( identifier , (binary_expression "(sVar13 - (short)local_74) - sVar12" (parenthesized_expression "(sVar13 - (short)local_74)" ( (binary_expression "sVar13 - (short)local_74" identifier - (cast_expression "(short)local_74" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) )) - identifier) ))) ;) })) (expression_statement "RelinquishMagickMemory(pcVar18);" (call_expression "RelinquishMagickMemory(pcVar18)" identifier (argument_list "(pcVar18)" ( identifier ))) ;) (if_statement "if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }" if (parenthesized_expression "(local_7c != (char *)0x0)" ( (binary_expression "local_7c != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        RelinquishMagickMemory(local_7c);\n      }" { (expression_statement "RelinquishMagickMemory(local_7c);" (call_expression "RelinquishMagickMemory(local_7c)" identifier (argument_list "(local_7c)" ( identifier ))) ;) })) (expression_statement "iVar20 = GetNextImageInList(param_2);" (assignment_expression "iVar20 = GetNextImageInList(param_2)" identifier = (call_expression "GetNextImageInList(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar20 == 0) goto LAB_00261e48;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00261e48;" goto statement_identifier ;)) (expression_statement "uVar21 = GetBlobSize(param_2);" (assignment_expression "uVar21 = GetBlobSize(param_2)" identifier = (call_expression "GetBlobSize(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uVar21 = uVar21 & 3;" (assignment_expression "uVar21 = uVar21 & 3" identifier = (binary_expression "uVar21 & 3" identifier & number_literal)) ;) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (if_statement "if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }" if (parenthesized_expression "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }" { (do_statement "do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);" do (compound_statement "{\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        }" { (expression_statement "WriteBlobByte(param_2,0);" (call_expression "WriteBlobByte(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal ))) ;) (expression_statement "bVar30 = uVar21 != 0;" (assignment_expression "bVar30 = uVar21 != 0" identifier = (binary_expression "uVar21 != 0" identifier != number_literal)) ;) (expression_statement "uVar21 = uVar21 - 1;" (assignment_expression "uVar21 = uVar21 - 1" identifier = (binary_expression "uVar21 - 1" identifier - number_literal)) ;) (expression_statement "iVar20 = iVar20 + -1 + (uint)bVar30;" (assignment_expression "iVar20 = iVar20 + -1 + (uint)bVar30" identifier = (binary_expression "iVar20 + -1 + (uint)bVar30" (binary_expression "iVar20 + -1" identifier + number_literal) + (cast_expression "(uint)bVar30" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) }) while (parenthesized_expression "(iVar20 != 0 || uVar21 != 0)" ( (binary_expression "iVar20 != 0 || uVar21 != 0" (binary_expression "iVar20 != 0" identifier != number_literal) || (binary_expression "uVar21 != 0" identifier != number_literal)) )) ;) })) (expression_statement "SeekBlob(param_2,lVar31 + 10,0);" (call_expression "SeekBlob(param_2,lVar31 + 10,0)" identifier (argument_list "(param_2,lVar31 + 10,0)" ( identifier , (binary_expression "lVar31 + 10" identifier + number_literal) , number_literal ))) ;) (expression_statement "iVar20 = GetBlobSize(param_2);" (assignment_expression "iVar20 = GetBlobSize(param_2)" identifier = (call_expression "GetBlobSize(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);" (call_expression "WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff)" identifier (argument_list "(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff)" ( identifier , (binary_expression "(uint)(iVar20 - iVar14) >> 2 & 0xffff" (binary_expression "(uint)(iVar20 - iVar14) >> 2" (call_expression "(uint)(iVar20 - iVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar20 - iVar14)" ( (binary_expression "iVar20 - iVar14" identifier - identifier) ))) >> number_literal) & number_literal) ))) ;) (expression_statement "lVar31 = GetBlobSize(param_2);" (assignment_expression "lVar31 = GetBlobSize(param_2)" identifier = (call_expression "GetBlobSize(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "SeekBlob(param_2,lVar31);" (call_expression "SeekBlob(param_2,lVar31)" identifier (argument_list "(param_2,lVar31)" ( identifier , identifier ))) ;) (expression_statement "param_2 = (int *)SyncNextImageInList(param_2);" (assignment_expression "param_2 = (int *)SyncNextImageInList(param_2)" identifier = (cast_expression "(int *)SyncNextImageInList(param_2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "SyncNextImageInList(param_2)" identifier (argument_list "(param_2)" ( identifier ))))) ;) (expression_statement "bVar30 = 0xfffffffe < local_54;" (assignment_expression "bVar30 = 0xfffffffe < local_54" identifier = (binary_expression "0xfffffffe < local_54" number_literal < identifier)) ;) (expression_statement "iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);" (assignment_expression "iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0)" identifier = (call_expression "SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0)" identifier (argument_list "(param_2,"Save/Images",local_54,local_50,uVar16,0)" ( identifier , (string_literal ""Save/Images"" " string_content ") , identifier , identifier , identifier , number_literal )))) ;) (if_statement "if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;" if (parenthesized_expression "((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))" ( (binary_expression "(iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0)" (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0)" ( (comma_expression "local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0" (assignment_expression "local_54 = local_54 + 1" identifier = (binary_expression "local_54 + 1" identifier + number_literal)) , (comma_expression "local_50 = local_50 + (uint)bVar30, param_1[3] == 0" (assignment_expression "local_50 = local_50 + (uint)bVar30" identifier = (binary_expression "local_50 + (uint)bVar30" identifier + (cast_expression "(uint)bVar30" ( (type_descriptor "uint" type_identifier) ) identifier))) , (binary_expression "param_1[3] == 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) == number_literal))) ))) )) (goto_statement "goto LAB_00261e48;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (labeled_statement "LAB_00260565:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_002decd0();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_002decd0();\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                    \n    FUN_002decd0();\n  }" { (expression_statement "FUN_002decd0();" (call_expression "FUN_002decd0()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar14;" return identifier ;) (labeled_statement "LAB_00261ad3:\n  dVar2 = (double)iVar22;" statement_identifier : (expression_statement "dVar2 = (double)iVar22;" (assignment_expression "dVar2 = (double)iVar22" identifier = (cast_expression "(double)iVar22" ( (type_descriptor "double" primitive_type) ) identifier)) ;)) (labeled_statement "LAB_00261adb:\n  if (iVar8 != 0) {\n    *(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;\n  }" statement_identifier : (if_statement "if (iVar8 != 0) {\n    *(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;\n  }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n    *(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;\n  }" { (expression_statement "*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;" (assignment_expression "*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2" (pointer_expression "*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)" * (cast_expression "(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + *(int *)(iVar6 + 0x44) * 8)" ( (binary_expression "iVar25 + *(int *)(iVar6 + 0x44) * 8" identifier + (binary_expression "*(int *)(iVar6 + 0x44) * 8" (pointer_expression "*(int *)(iVar6 + 0x44)" * (cast_expression "(int *)(iVar6 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x44)" ( (binary_expression "iVar6 + 0x44" identifier + number_literal) )))) * number_literal)) )))) = identifier) ;) }))) (expression_statement "local_d4 = local_d4 + 1;" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) ;) (expression_statement "iVar25 = iVar25 + iVar7 * 8;" (assignment_expression "iVar25 = iVar25 + iVar7 * 8" identifier = (binary_expression "iVar25 + iVar7 * 8" identifier + (binary_expression "iVar7 * 8" identifier * number_literal))) ;) (if_statement "if (local_d4 == iVar19) goto LAB_00261b09;" if (parenthesized_expression "(local_d4 == iVar19)" ( (binary_expression "local_d4 == iVar19" identifier == identifier) )) (goto_statement "goto LAB_00261b09;" goto statement_identifier ;)) (goto_statement "goto LAB_002618c8;" goto statement_identifier ;) (labeled_statement "LAB_00261e48:\n  DestroyQuantizeInfo(piVar15);" statement_identifier : (expression_statement "DestroyQuantizeInfo(piVar15);" (call_expression "DestroyQuantizeInfo(piVar15)" identifier (argument_list "(piVar15)" ( identifier ))) ;)) (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00260565;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) IDENT ;) (declaration (sized_type_specifier short) 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (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 (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 (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))) < IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) || (parenthesized_expression ( (comma_expression (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) , (binary_expression (pointer_expression * IDENT) == LIT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_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 , (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ])) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression LIT / (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) + LIT) + (subscript_expression IDENT [ LIT ])) ))) / (parenthesized_expression ( (binary_expression LIT / (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ))) * LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT & LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) )) (compound_statement { (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 , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_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 ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_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 ))) ;) (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 , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , (string_literal " string_content ") , LIT , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT , 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 = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) )))) * LIT) + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (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)) )))))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (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)) )))))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (goto_statement goto statement_identifier ;)) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (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)) )))))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (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)) )))))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (goto_statement goto statement_identifier ;)) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT)) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (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 (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (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)) )))))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (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)) )))))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (goto_statement goto statement_identifier ;)) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }))))) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;)) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (subscript_expression IDENT [ LIT ])) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ])) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (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 LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (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 (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 LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (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 (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 LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (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 IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (binary_expression (binary_expression IDENT * LIT) + LIT)) )))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT ))))) , (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 ]))) ;) (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) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT ))))) ;) (if_statement if (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 ))) ;) })) (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 ]))) ;) (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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (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 IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = (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 = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT )))) * LIT) )) / LIT) )) * LIT) | (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT )))) * LIT) )) / LIT) )) * LIT)) | (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT )))) * LIT) )) / LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ]) = (cast_expression ( (type_descriptor TYPE) ) 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 + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (subscript_expression IDENT [ LIT ])) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (break_statement break ;) })) (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 = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) [ IDENT ]) != IDENT) )) || (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (break_statement break ;)) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression LIT - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) * LIT)) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (subscript_expression IDENT [ LIT ]) - LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (call_expression IDENT (argument_list ( IDENT )))))) << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (call_expression IDENT (argument_list ( (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) * LIT)) )))) )))))) << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) % (parenthesized_expression ( (binary_expression LIT / (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) }))) }))) }))) }))) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (subscript_expression IDENT [ LIT ])) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression 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 ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) - (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) ))) != IDENT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })))) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )) / IDENT) ))))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) / IDENT) ))))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT * IDENT) )) / IDENT) ))))) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) )) - IDENT) ))) ;) })) (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 (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - IDENT) ))) >> LIT) & LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (comma_expression (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) , (binary_expression (subscript_expression IDENT [ LIT ]) == LIT))) ))) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( BOOL )) ;) })) (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 { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (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 ;) })))
(function_definition "int FUN_00260480(int *param_1,int *param_2,uint param_3)\n\n{\n  char *pcVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  byte bVar10;\n  undefined1 uVar11;\n  short sVar12;\n  short sVar13;\n  int iVar14;\n  int *piVar15;\n  undefined4 uVar16;\n  uint uVar17;\n  char *pcVar18;\n  int iVar19;\n  int iVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  char *pcVar24;\n  int iVar25;\n  int iVar26;\n  char cVar27;\n  uint uVar28;\n  int *piVar29;\n  int in_GS_OFFSET;\n  bool bVar30;\n  longlong lVar31;\n  longlong lVar32;\n  uint local_d4;\n  ulonglong local_cc;\n  char *local_b8;\n  byte local_b4;\n  char *local_b0;\n  uint local_ac;\n  uint local_a0;\n  char *local_9c;\n  double local_94;\n  double local_8c;\n  double local_84;\n  char *local_7c;\n  char *local_78;\n  int local_74;\n  int local_64;\n  uint local_60;\n  uint local_54;\n  int local_50;\n  ushort local_48;\n  undefined1 local_46;\n  byte local_45;\n  char local_28 [4];\n  char local_24;\n  char local_23;\n  char local_22;\n  char local_21;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == (int *)0x0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/palm.c",0x2ed,"WritePALMImage");\n  }\n  if (param_1[0xc7d] != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage");\n  }\n  if (param_2 == (int *)0x0) {\n                    \n    __assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");\n  }\n  if (param_2[0xcd1] != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");\n  }\n  if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6);\n  }\n  if (param_3 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");\n  }\n  if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage");\n  }\n  uVar21 = param_3;\n  iVar14 = OpenBlob(param_1,param_2,4,param_3);\n  if (iVar14 != 0) {\n    piVar15 = (int *)AcquireQuantizeInfo(param_1);\n    uVar16 = GetImageListLength(param_2);\n    local_8c = 0.0;\n    local_48 = 0;\n    local_84 = 0.0;\n    local_46 = 0;\n    local_94 = 0.0;\n    local_54 = 0;\n    local_50 = 0;\n    lVar31 = 0;\n    do {\n      local_74 = (int)lVar31;\n      iVar14 = local_74;\n      TransformImageColorspace(param_2,0x17,param_3);\n      uVar17 = GetNumberColors(param_2,0,param_3);\n      local_a0 = 1;\n      if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(param_2,(short)param_2[6]);\n      WriteBlobMSBShort(param_2,(short)param_2[7]);\n      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(param_2,uVar21 & 0xffff);\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(param_2,local_48);\n      WriteBlobByte(param_2,local_a0);\n      if (1 < local_a0) {\n        local_46 = 1;\n      }\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }\n      WriteBlobByte(param_2,local_46);\n      WriteBlobMSBShort(param_2,0);\n      WriteBlobByte(param_2,0);\n      if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }\n      WriteBlobMSBShort(param_2,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }\n      lVar32 = CONCAT44(local_60,local_64);\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }\n      local_7c = (char *)0x0;\n      piVar29 = param_2;\n      if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }\n      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);\n      if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }\n      if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }\n      if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }\n      RelinquishMagickMemory(pcVar18);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      iVar20 = GetNextImageInList(param_2);\n      if (iVar20 == 0) goto LAB_00261e48;\n      uVar21 = GetBlobSize(param_2);\n      uVar21 = uVar21 & 3;\n      iVar20 = 0;\n      if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }\n      SeekBlob(param_2,lVar31 + 10,0);\n      iVar20 = GetBlobSize(param_2);\n      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);\n      lVar31 = GetBlobSize(param_2);\n      uVar21 = 0;\n      SeekBlob(param_2,lVar31);\n      param_2 = (int *)SyncNextImageInList(param_2);\n      bVar30 = 0xfffffffe < local_54;\n      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);\n      if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;\n    } while( true );\n  }\nLAB_00260565:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_002decd0();\n  }\n  return iVar14;\nLAB_00261ad3:\n  dVar2 = (double)iVar22;\nLAB_00261adb:\n  if (iVar8 != 0) {\n    *(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;\n  }\n  local_d4 = local_d4 + 1;\n  iVar25 = iVar25 + iVar7 * 8;\n  if (local_d4 == iVar19) goto LAB_00261b09;\n  goto LAB_002618c8;\nLAB_00261e48:\n  DestroyQuantizeInfo(piVar15);\n  CloseBlob(param_2);\n  iVar14 = 1;\n  goto LAB_00260565;\n}" (primitive_type "int") (function_declarator "FUN_00260480(int *param_1,int *param_2,uint param_3)" (identifier "FUN_00260480") (parameter_list "(int *param_1,int *param_2,uint 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 "uint param_3" (type_identifier "uint") (identifier "param_3")) () ")"))) (compound_statement "{\n  char *pcVar1;\n  double dVar2;\n  double dVar3;\n  double dVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int *piVar9;\n  byte bVar10;\n  undefined1 uVar11;\n  short sVar12;\n  short sVar13;\n  int iVar14;\n  int *piVar15;\n  undefined4 uVar16;\n  uint uVar17;\n  char *pcVar18;\n  int iVar19;\n  int iVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  char *pcVar24;\n  int iVar25;\n  int iVar26;\n  char cVar27;\n  uint uVar28;\n  int *piVar29;\n  int in_GS_OFFSET;\n  bool bVar30;\n  longlong lVar31;\n  longlong lVar32;\n  uint local_d4;\n  ulonglong local_cc;\n  char *local_b8;\n  byte local_b4;\n  char *local_b0;\n  uint local_ac;\n  uint local_a0;\n  char *local_9c;\n  double local_94;\n  double local_8c;\n  double local_84;\n  char *local_7c;\n  char *local_78;\n  int local_74;\n  int local_64;\n  uint local_60;\n  uint local_54;\n  int local_50;\n  ushort local_48;\n  undefined1 local_46;\n  byte local_45;\n  char local_28 [4];\n  char local_24;\n  char local_23;\n  char local_22;\n  char local_21;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == (int *)0x0) {\n                    \n    __assert_fail("image_info != (const ImageInfo *) NULL","coders/palm.c",0x2ed,"WritePALMImage");\n  }\n  if (param_1[0xc7d] != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage");\n  }\n  if (param_2 == (int *)0x0) {\n                    \n    __assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");\n  }\n  if (param_2[0xcd1] != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");\n  }\n  if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6);\n  }\n  if (param_3 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");\n  }\n  if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage");\n  }\n  uVar21 = param_3;\n  iVar14 = OpenBlob(param_1,param_2,4,param_3);\n  if (iVar14 != 0) {\n    piVar15 = (int *)AcquireQuantizeInfo(param_1);\n    uVar16 = GetImageListLength(param_2);\n    local_8c = 0.0;\n    local_48 = 0;\n    local_84 = 0.0;\n    local_46 = 0;\n    local_94 = 0.0;\n    local_54 = 0;\n    local_50 = 0;\n    lVar31 = 0;\n    do {\n      local_74 = (int)lVar31;\n      iVar14 = local_74;\n      TransformImageColorspace(param_2,0x17,param_3);\n      uVar17 = GetNumberColors(param_2,0,param_3);\n      local_a0 = 1;\n      if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(param_2,(short)param_2[6]);\n      WriteBlobMSBShort(param_2,(short)param_2[7]);\n      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(param_2,uVar21 & 0xffff);\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(param_2,local_48);\n      WriteBlobByte(param_2,local_a0);\n      if (1 < local_a0) {\n        local_46 = 1;\n      }\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }\n      WriteBlobByte(param_2,local_46);\n      WriteBlobMSBShort(param_2,0);\n      WriteBlobByte(param_2,0);\n      if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }\n      WriteBlobMSBShort(param_2,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }\n      lVar32 = CONCAT44(local_60,local_64);\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }\n      local_7c = (char *)0x0;\n      piVar29 = param_2;\n      if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }\n      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);\n      if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }\n      if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }\n      if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }\n      RelinquishMagickMemory(pcVar18);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      iVar20 = GetNextImageInList(param_2);\n      if (iVar20 == 0) goto LAB_00261e48;\n      uVar21 = GetBlobSize(param_2);\n      uVar21 = uVar21 & 3;\n      iVar20 = 0;\n      if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }\n      SeekBlob(param_2,lVar31 + 10,0);\n      iVar20 = GetBlobSize(param_2);\n      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);\n      lVar31 = GetBlobSize(param_2);\n      uVar21 = 0;\n      SeekBlob(param_2,lVar31);\n      param_2 = (int *)SyncNextImageInList(param_2);\n      bVar30 = 0xfffffffe < local_54;\n      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);\n      if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;\n    } while( true );\n  }\nLAB_00260565:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_002decd0();\n  }\n  return iVar14;\nLAB_00261ad3:\n  dVar2 = (double)iVar22;\nLAB_00261adb:\n  if (iVar8 != 0) {\n    *(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;\n  }\n  local_d4 = local_d4 + 1;\n  iVar25 = iVar25 + iVar7 * 8;\n  if (local_d4 == iVar19) goto LAB_00261b09;\n  goto LAB_002618c8;\nLAB_00261e48:\n  DestroyQuantizeInfo(piVar15);\n  CloseBlob(param_2);\n  iVar14 = 1;\n  goto LAB_00260565;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (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 iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "byte bVar10;" (type_identifier "byte") (identifier "bVar10") (; ";")) (declaration "undefined1 uVar11;" (type_identifier "undefined1") (identifier "uVar11") (; ";")) (declaration "short sVar12;" (sized_type_specifier "short" (short "short")) (identifier "sVar12") (; ";")) (declaration "short sVar13;" (sized_type_specifier "short" (short "short")) (identifier "sVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "undefined4 uVar16;" (type_identifier "undefined4") (identifier "uVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "char *pcVar18;" (primitive_type "char") (pointer_declarator "*pcVar18" (* "*") (identifier "pcVar18")) (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "char *pcVar24;" (primitive_type "char") (pointer_declarator "*pcVar24" (* "*") (identifier "pcVar24")) (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "int iVar26;" (primitive_type "int") (identifier "iVar26") (; ";")) (declaration "char cVar27;" (primitive_type "char") (identifier "cVar27") (; ";")) (declaration "uint uVar28;" (type_identifier "uint") (identifier "uVar28") (; ";")) (declaration "int *piVar29;" (primitive_type "int") (pointer_declarator "*piVar29" (* "*") (identifier "piVar29")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar30;" (primitive_type "bool") (identifier "bVar30") (; ";")) (declaration "longlong lVar31;" (type_identifier "longlong") (identifier "lVar31") (; ";")) (declaration "longlong lVar32;" (type_identifier "longlong") (identifier "lVar32") (; ";")) (declaration "uint local_d4;" (type_identifier "uint") (identifier "local_d4") (; ";")) (declaration "ulonglong local_cc;" (type_identifier "ulonglong") (identifier "local_cc") (; ";")) (declaration "char *local_b8;" (primitive_type "char") (pointer_declarator "*local_b8" (* "*") (identifier "local_b8")) (; ";")) (declaration "byte local_b4;" (type_identifier "byte") (identifier "local_b4") (; ";")) (declaration "char *local_b0;" (primitive_type "char") (pointer_declarator "*local_b0" (* "*") (identifier "local_b0")) (; ";")) (declaration "uint local_ac;" (type_identifier "uint") (identifier "local_ac") (; ";")) (declaration "uint local_a0;" (type_identifier "uint") (identifier "local_a0") (; ";")) (declaration "char *local_9c;" (primitive_type "char") (pointer_declarator "*local_9c" (* "*") (identifier "local_9c")) (; ";")) (declaration "double local_94;" (primitive_type "double") (identifier "local_94") (; ";")) (declaration "double local_8c;" (primitive_type "double") (identifier "local_8c") (; ";")) (declaration "double local_84;" (primitive_type "double") (identifier "local_84") (; ";")) (declaration "char *local_7c;" (primitive_type "char") (pointer_declarator "*local_7c" (* "*") (identifier "local_7c")) (; ";")) (declaration "char *local_78;" (primitive_type "char") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "int local_74;" (primitive_type "int") (identifier "local_74") (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "uint local_60;" (type_identifier "uint") (identifier "local_60") (; ";")) (declaration "uint local_54;" (type_identifier "uint") (identifier "local_54") (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "ushort local_48;" (type_identifier "ushort") (identifier "local_48") (; ";")) (declaration "undefined1 local_46;" (type_identifier "undefined1") (identifier "local_46") (; ";")) (declaration "byte local_45;" (type_identifier "byte") (identifier "local_45") (; ";")) (declaration "char local_28 [4];" (primitive_type "char") (array_declarator "local_28 [4]" (identifier "local_28") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "char local_24;" (primitive_type "char") (identifier "local_24") (; ";")) (declaration "char local_23;" (primitive_type "char") (identifier "local_23") (; ";")) (declaration "char local_22;" (primitive_type "char") (identifier "local_22") (; ";")) (declaration "char local_21;" (primitive_type "char") (identifier "local_21") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (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/palm.c",0x2ed,"WritePALMImage");\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/palm.c",0x2ed,"WritePALMImage");\n  }" ({ "{") (expression_statement "__assert_fail("image_info != (const ImageInfo *) NULL","coders/palm.c",0x2ed,"WritePALMImage");" (call_expression "__assert_fail("image_info != (const ImageInfo *) NULL","coders/palm.c",0x2ed,"WritePALMImage")" (identifier "__assert_fail") (argument_list "("image_info != (const ImageInfo *) NULL","coders/palm.c",0x2ed,"WritePALMImage")" (( "(") (string_literal ""image_info != (const ImageInfo *) NULL"" (" """) (string_content "image_info != (const ImageInfo *) NULL") (" """)) (, ",") (string_literal ""coders/palm.c"" (" """) (string_content "coders/palm.c") (" """)) (, ",") (number_literal "0x2ed") (, ",") (string_literal ""WritePALMImage"" (" """) (string_content "WritePALMImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_1[0xc7d] != -0x54535255) {\n                    \n    __assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage");\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/palm.c",0x2ee,\n                  "WritePALMImage");\n  }" ({ "{") (expression_statement "__assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage");" (call_expression "__assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage")" (identifier "__assert_fail") (argument_list "("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,\n                  "WritePALMImage")" (( "(") (string_literal ""image_info->signature == MagickCoreSignature"" (" """) (string_content "image_info->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""coders/palm.c"" (" """) (string_content "coders/palm.c") (" """)) (, ",") (number_literal "0x2ee") (, ",") (string_literal ""WritePALMImage"" (" """) (string_content "WritePALMImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 == (int *)0x0) {\n                    \n    __assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");\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/palm.c",0x2ef,"WritePALMImage");\n  }" ({ "{") (expression_statement "__assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");" (call_expression "__assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage")" (identifier "__assert_fail") (argument_list "("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage")" (( "(") (string_literal ""image != (Image *) NULL"" (" """) (string_content "image != (Image *) NULL") (" """)) (, ",") (string_literal ""coders/palm.c"" (" """) (string_content "coders/palm.c") (" """)) (, ",") (number_literal "0x2ef") (, ",") (string_literal ""WritePALMImage"" (" """) (string_content "WritePALMImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2[0xcd1] != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");\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/palm.c",0x2f0,"WritePALMImage");\n  }" ({ "{") (expression_statement "__assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage")" (identifier "__assert_fail") (argument_list "("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage")" (( "(") (string_literal ""image->signature == MagickCoreSignature"" (" """) (string_content "image->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""coders/palm.c"" (" """) (string_content "coders/palm.c") (" """)) (, ",") (number_literal "0x2f0") (, ",") (string_literal ""WritePALMImage"" (" """) (string_content "WritePALMImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2[0xcca] != 0) {\n    LogMagickEvent(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&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/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6);\n  }" ({ "{") (expression_statement "LogMagickEvent(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6);" (call_expression "LogMagickEvent(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6)" (identifier "LogMagickEvent") (argument_list "(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6)" (( "(") (number_literal "0x8000") (, ",") (string_literal ""coders/palm.c"" (" """) (string_content "coders/palm.c") (" """)) (, ",") (string_literal ""WritePALMImage"" (" """) (string_content "WritePALMImage") (" """)) (, ",") (number_literal "0x2f2") (, ",") (pointer_expression "&DAT_002f75ae" (& "&") (identifier "DAT_002f75ae")) (, ",") (binary_expression "param_2 + 0xc6" (identifier "param_2") (+ "+") (number_literal "0xc6")) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_3 == 0) {\n                    \n    __assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");\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/palm.c",0x2f3,"WritePALMImage");\n  }" ({ "{") (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage")" (identifier "__assert_fail") (argument_list "("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage")" (( "(") (string_literal ""exception != (ExceptionInfo *) NULL"" (" """) (string_content "exception != (ExceptionInfo *) NULL") (" """)) (, ",") (string_literal ""coders/palm.c"" (" """) (string_content "coders/palm.c") (" """)) (, ",") (number_literal "0x2f3") (, ",") (string_literal ""WritePALMImage"" (" """) (string_content "WritePALMImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_3 + 0x1c) != -0x54535255) {\n                    \n    __assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage");\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/palm.c",0x2f4,\n                  "WritePALMImage");\n  }" ({ "{") (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage");" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage")" (identifier "__assert_fail") (argument_list "("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,\n                  "WritePALMImage")" (( "(") (string_literal ""exception->signature == MagickCoreSignature"" (" """) (string_content "exception->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""coders/palm.c"" (" """) (string_content "coders/palm.c") (" """)) (, ",") (number_literal "0x2f4") (, ",") (string_literal ""WritePALMImage"" (" """) (string_content "WritePALMImage") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar21 = param_3;" (assignment_expression "uVar21 = param_3" (identifier "uVar21") (= "=") (identifier "param_3")) (; ";")) (expression_statement "iVar14 = OpenBlob(param_1,param_2,4,param_3);" (assignment_expression "iVar14 = OpenBlob(param_1,param_2,4,param_3)" (identifier "iVar14") (= "=") (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 (iVar14 != 0) {\n    piVar15 = (int *)AcquireQuantizeInfo(param_1);\n    uVar16 = GetImageListLength(param_2);\n    local_8c = 0.0;\n    local_48 = 0;\n    local_84 = 0.0;\n    local_46 = 0;\n    local_94 = 0.0;\n    local_54 = 0;\n    local_50 = 0;\n    lVar31 = 0;\n    do {\n      local_74 = (int)lVar31;\n      iVar14 = local_74;\n      TransformImageColorspace(param_2,0x17,param_3);\n      uVar17 = GetNumberColors(param_2,0,param_3);\n      local_a0 = 1;\n      if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(param_2,(short)param_2[6]);\n      WriteBlobMSBShort(param_2,(short)param_2[7]);\n      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(param_2,uVar21 & 0xffff);\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(param_2,local_48);\n      WriteBlobByte(param_2,local_a0);\n      if (1 < local_a0) {\n        local_46 = 1;\n      }\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }\n      WriteBlobByte(param_2,local_46);\n      WriteBlobMSBShort(param_2,0);\n      WriteBlobByte(param_2,0);\n      if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }\n      WriteBlobMSBShort(param_2,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }\n      lVar32 = CONCAT44(local_60,local_64);\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }\n      local_7c = (char *)0x0;\n      piVar29 = param_2;\n      if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }\n      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);\n      if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }\n      if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }\n      if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }\n      RelinquishMagickMemory(pcVar18);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      iVar20 = GetNextImageInList(param_2);\n      if (iVar20 == 0) goto LAB_00261e48;\n      uVar21 = GetBlobSize(param_2);\n      uVar21 = uVar21 & 3;\n      iVar20 = 0;\n      if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }\n      SeekBlob(param_2,lVar31 + 10,0);\n      iVar20 = GetBlobSize(param_2);\n      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);\n      lVar31 = GetBlobSize(param_2);\n      uVar21 = 0;\n      SeekBlob(param_2,lVar31);\n      param_2 = (int *)SyncNextImageInList(param_2);\n      bVar30 = 0xfffffffe < local_54;\n      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);\n      if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(iVar14 != 0)" (( "(") (binary_expression "iVar14 != 0" (identifier "iVar14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    piVar15 = (int *)AcquireQuantizeInfo(param_1);\n    uVar16 = GetImageListLength(param_2);\n    local_8c = 0.0;\n    local_48 = 0;\n    local_84 = 0.0;\n    local_46 = 0;\n    local_94 = 0.0;\n    local_54 = 0;\n    local_50 = 0;\n    lVar31 = 0;\n    do {\n      local_74 = (int)lVar31;\n      iVar14 = local_74;\n      TransformImageColorspace(param_2,0x17,param_3);\n      uVar17 = GetNumberColors(param_2,0,param_3);\n      local_a0 = 1;\n      if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(param_2,(short)param_2[6]);\n      WriteBlobMSBShort(param_2,(short)param_2[7]);\n      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(param_2,uVar21 & 0xffff);\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(param_2,local_48);\n      WriteBlobByte(param_2,local_a0);\n      if (1 < local_a0) {\n        local_46 = 1;\n      }\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }\n      WriteBlobByte(param_2,local_46);\n      WriteBlobMSBShort(param_2,0);\n      WriteBlobByte(param_2,0);\n      if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }\n      WriteBlobMSBShort(param_2,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }\n      lVar32 = CONCAT44(local_60,local_64);\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }\n      local_7c = (char *)0x0;\n      piVar29 = param_2;\n      if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }\n      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);\n      if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }\n      if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }\n      if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }\n      RelinquishMagickMemory(pcVar18);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      iVar20 = GetNextImageInList(param_2);\n      if (iVar20 == 0) goto LAB_00261e48;\n      uVar21 = GetBlobSize(param_2);\n      uVar21 = uVar21 & 3;\n      iVar20 = 0;\n      if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }\n      SeekBlob(param_2,lVar31 + 10,0);\n      iVar20 = GetBlobSize(param_2);\n      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);\n      lVar31 = GetBlobSize(param_2);\n      uVar21 = 0;\n      SeekBlob(param_2,lVar31);\n      param_2 = (int *)SyncNextImageInList(param_2);\n      bVar30 = 0xfffffffe < local_54;\n      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);\n      if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;\n    } while( true );\n  }" ({ "{") (expression_statement "piVar15 = (int *)AcquireQuantizeInfo(param_1);" (assignment_expression "piVar15 = (int *)AcquireQuantizeInfo(param_1)" (identifier "piVar15") (= "=") (cast_expression "(int *)AcquireQuantizeInfo(param_1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "AcquireQuantizeInfo(param_1)" (identifier "AcquireQuantizeInfo") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (expression_statement "uVar16 = GetImageListLength(param_2);" (assignment_expression "uVar16 = GetImageListLength(param_2)" (identifier "uVar16") (= "=") (call_expression "GetImageListLength(param_2)" (identifier "GetImageListLength") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "local_8c = 0.0;" (assignment_expression "local_8c = 0.0" (identifier "local_8c") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_84 = 0.0;" (assignment_expression "local_84 = 0.0" (identifier "local_84") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_46 = 0;" (assignment_expression "local_46 = 0" (identifier "local_46") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_94 = 0.0;" (assignment_expression "local_94 = 0.0" (identifier "local_94") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar31 = 0;" (assignment_expression "lVar31 = 0" (identifier "lVar31") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      local_74 = (int)lVar31;\n      iVar14 = local_74;\n      TransformImageColorspace(param_2,0x17,param_3);\n      uVar17 = GetNumberColors(param_2,0,param_3);\n      local_a0 = 1;\n      if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(param_2,(short)param_2[6]);\n      WriteBlobMSBShort(param_2,(short)param_2[7]);\n      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(param_2,uVar21 & 0xffff);\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(param_2,local_48);\n      WriteBlobByte(param_2,local_a0);\n      if (1 < local_a0) {\n        local_46 = 1;\n      }\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }\n      WriteBlobByte(param_2,local_46);\n      WriteBlobMSBShort(param_2,0);\n      WriteBlobByte(param_2,0);\n      if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }\n      WriteBlobMSBShort(param_2,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }\n      lVar32 = CONCAT44(local_60,local_64);\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }\n      local_7c = (char *)0x0;\n      piVar29 = param_2;\n      if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }\n      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);\n      if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }\n      if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }\n      if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }\n      RelinquishMagickMemory(pcVar18);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      iVar20 = GetNextImageInList(param_2);\n      if (iVar20 == 0) goto LAB_00261e48;\n      uVar21 = GetBlobSize(param_2);\n      uVar21 = uVar21 & 3;\n      iVar20 = 0;\n      if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }\n      SeekBlob(param_2,lVar31 + 10,0);\n      iVar20 = GetBlobSize(param_2);\n      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);\n      lVar31 = GetBlobSize(param_2);\n      uVar21 = 0;\n      SeekBlob(param_2,lVar31);\n      param_2 = (int *)SyncNextImageInList(param_2);\n      bVar30 = 0xfffffffe < local_54;\n      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);\n      if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;\n    } while( true );" (do "do") (compound_statement "{\n      local_74 = (int)lVar31;\n      iVar14 = local_74;\n      TransformImageColorspace(param_2,0x17,param_3);\n      uVar17 = GetNumberColors(param_2,0,param_3);\n      local_a0 = 1;\n      if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }\n      if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }\n      WriteBlobMSBShort(param_2,(short)param_2[6]);\n      WriteBlobMSBShort(param_2,(short)param_2[7]);\n      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;\n      WriteBlobMSBShort(param_2,uVar21 & 0xffff);\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }\n      WriteBlobMSBShort(param_2,local_48);\n      WriteBlobByte(param_2,local_a0);\n      if (1 < local_a0) {\n        local_46 = 1;\n      }\n      if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }\n      WriteBlobByte(param_2,local_46);\n      WriteBlobMSBShort(param_2,0);\n      WriteBlobByte(param_2,0);\n      if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }\n      WriteBlobMSBShort(param_2,0);\n      if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }\n      lVar32 = CONCAT44(local_60,local_64);\n      if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }\n      local_7c = (char *)0x0;\n      piVar29 = param_2;\n      if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }\n      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);\n      if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }\n      if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }\n      if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }\n      if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }\n      if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }\n      RelinquishMagickMemory(pcVar18);\n      if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }\n      iVar20 = GetNextImageInList(param_2);\n      if (iVar20 == 0) goto LAB_00261e48;\n      uVar21 = GetBlobSize(param_2);\n      uVar21 = uVar21 & 3;\n      iVar20 = 0;\n      if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }\n      SeekBlob(param_2,lVar31 + 10,0);\n      iVar20 = GetBlobSize(param_2);\n      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);\n      lVar31 = GetBlobSize(param_2);\n      uVar21 = 0;\n      SeekBlob(param_2,lVar31);\n      param_2 = (int *)SyncNextImageInList(param_2);\n      bVar30 = 0xfffffffe < local_54;\n      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);\n      if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;\n    }" ({ "{") (expression_statement "local_74 = (int)lVar31;" (assignment_expression "local_74 = (int)lVar31" (identifier "local_74") (= "=") (cast_expression "(int)lVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar31"))) (; ";")) (expression_statement "iVar14 = local_74;" (assignment_expression "iVar14 = local_74" (identifier "iVar14") (= "=") (identifier "local_74")) (; ";")) (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 "uVar17 = GetNumberColors(param_2,0,param_3);" (assignment_expression "uVar17 = GetNumberColors(param_2,0,param_3)" (identifier "uVar17") (= "=") (call_expression "GetNumberColors(param_2,0,param_3)" (identifier "GetNumberColors") (argument_list "(param_2,0,param_3)" (( "(") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "local_a0 = 1;" (assignment_expression "local_a0 = 1" (identifier "local_a0") (= "=") (number_literal "1")) (; ";")) (if_statement "if (uVar17 < 3) {\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }\n      else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }" (if "if") (parenthesized_expression "(uVar17 < 3)" (( "(") (binary_expression "uVar17 < 3" (identifier "uVar17") (< "<") (number_literal "3")) () ")")) (compound_statement "{\n        TransformImageColorspace(param_2,param_2[1],param_3);\n        local_a0 = 1;\n        local_45 = 1;\nLAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);\n        SetImageType(param_2,4,param_3);\n        SortColormapByIntensity(param_2,param_3);\n      }" ({ "{") (expression_statement "TransformImageColorspace(param_2,param_2[1],param_3);" (call_expression "TransformImageColorspace(param_2,param_2[1],param_3)" (identifier "TransformImageColorspace") (argument_list "(param_2,param_2[1],param_3)" (( "(") (identifier "param_2") (, ",") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "local_a0 = 1;" (assignment_expression "local_a0 = 1" (identifier "local_a0") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_45 = 1;" (assignment_expression "local_45 = 1" (identifier "local_45") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_00261df3:\n        TransformImageColorspace(param_2,3,param_3,uVar21);" (statement_identifier "LAB_00261df3") (: ":") (expression_statement "TransformImageColorspace(param_2,3,param_3,uVar21);" (call_expression "TransformImageColorspace(param_2,3,param_3,uVar21)" (identifier "TransformImageColorspace") (argument_list "(param_2,3,param_3,uVar21)" (( "(") (identifier "param_2") (, ",") (number_literal "3") (, ",") (identifier "param_3") (, ",") (identifier "uVar21") () ")"))) (; ";"))) (expression_statement "SetImageType(param_2,4,param_3);" (call_expression "SetImageType(param_2,4,param_3)" (identifier "SetImageType") (argument_list "(param_2,4,param_3)" (( "(") (identifier "param_2") (, ",") (number_literal "4") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "SortColormapByIntensity(param_2,param_3);" (call_expression "SortColormapByIntensity(param_2,param_3)" (identifier "SortColormapByIntensity") (argument_list "(param_2,param_3)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }" (else "else") (compound_statement "{\n        do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);\n        if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }\n      }" ({ "{") (do_statement "do {\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);" (do "do") (compound_statement "{\n          local_a0 = local_a0 * 2;\n          local_45 = (byte)local_a0;\n        }" ({ "{") (expression_statement "local_a0 = local_a0 * 2;" (assignment_expression "local_a0 = local_a0 * 2" (identifier "local_a0") (= "=") (binary_expression "local_a0 * 2" (identifier "local_a0") (* "*") (number_literal "2"))) (; ";")) (expression_statement "local_45 = (byte)local_a0;" (assignment_expression "local_45 = (byte)local_a0" (identifier "local_45") (= "=") (cast_expression "(byte)local_a0" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_a0"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uint)(1 << (local_45 & 0x1f)) < uVar17)" (( "(") (binary_expression "(uint)(1 << (local_45 & 0x1f)) < uVar17" (call_expression "(uint)(1 << (local_45 & 0x1f))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(1 << (local_45 & 0x1f))" (( "(") (binary_expression "1 << (local_45 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(local_45 & 0x1f)" (( "(") (binary_expression "local_45 & 0x1f" (identifier "local_45") (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (< "<") (identifier "uVar17")) () ")")) (; ";")) (if_statement "if (local_a0 < 0x11) {\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }\n        else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }" (if "if") (parenthesized_expression "(local_a0 < 0x11)" (( "(") (binary_expression "local_a0 < 0x11" (identifier "local_a0") (< "<") (number_literal "0x11")) () ")")) (compound_statement "{\n          if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }\n        }" ({ "{") (if_statement "if (local_a0 == 0x10) {\n            local_45 = 0x10;\n          }\n          else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }" (if "if") (parenthesized_expression "(local_a0 == 0x10)" (( "(") (binary_expression "local_a0 == 0x10" (identifier "local_a0") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n            local_45 = 0x10;\n          }" ({ "{") (expression_statement "local_45 = 0x10;" (assignment_expression "local_45 = 0x10" (identifier "local_45") (= "=") (number_literal "0x10")) (; ";")) (} "}")) (else_clause "else {\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }" (else "else") (compound_statement "{\n            uVar21 = local_a0;\n            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);\n            if (local_a0 < 8) goto LAB_00261df3;\n          }" ({ "{") (expression_statement "uVar21 = local_a0;" (assignment_expression "uVar21 = local_a0" (identifier "uVar21") (= "=") (identifier "local_a0")) (; ";")) (expression_statement "TransformImageColorspace(param_2,param_2[1],param_3,local_a0);" (call_expression "TransformImageColorspace(param_2,param_2[1],param_3,local_a0)" (identifier "TransformImageColorspace") (argument_list "(param_2,param_2[1],param_3,local_a0)" (( "(") (identifier "param_2") (, ",") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "param_3") (, ",") (identifier "local_a0") () ")"))) (; ";")) (if_statement "if (local_a0 < 8) goto LAB_00261df3;" (if "if") (parenthesized_expression "(local_a0 < 8)" (( "(") (binary_expression "local_a0 < 8" (identifier "local_a0") (< "<") (number_literal "8")) () ")")) (goto_statement "goto LAB_00261df3;" (goto "goto") (statement_identifier "LAB_00261df3") (; ";"))) (} "}")))) (} "}")) (else_clause "else {\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }" (else "else") (compound_statement "{\n          local_a0 = 0x10;\n          local_45 = 0x10;\n        }" ({ "{") (expression_statement "local_a0 = 0x10;" (assignment_expression "local_a0 = 0x10" (identifier "local_a0") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "local_45 = 0x10;" (assignment_expression "local_45 = 0x10" (identifier "local_45") (= "=") (number_literal "0x10")) (; ";")) (} "}")))) (} "}")))) (if_statement "if ((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {\n        local_48 = local_48 | 0x4000;\n      }\n      else {\n        local_48 = local_48 | 0x400;\n      }" (if "if") (parenthesized_expression "((*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2))))" (( "(") (binary_expression "(*param_2 == 2) &&\n         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))" (parenthesized_expression "(*param_2 == 2)" (( "(") (binary_expression "*param_2 == 2" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))" (( "(") (parenthesized_expression "((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2))" (( "(") (binary_expression "(uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)" (binary_expression "(uint)param_2[9] < 0x101" (cast_expression "(uint)param_2[9]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]"))) (< "<") (number_literal "0x101")) (|| "||") (parenthesized_expression "(SetImageStorageClass(param_2,1,param_3), *param_2 == 2)" (( "(") (comma_expression "SetImageStorageClass(param_2,1,param_3), *param_2 == 2" (call_expression "SetImageStorageClass(param_2,1,param_3)" (identifier "SetImageStorageClass") (argument_list "(param_2,1,param_3)" (( "(") (identifier "param_2") (, ",") (number_literal "1") (, ",") (identifier "param_3") () ")"))) (, ",") (binary_expression "*param_2 == 2" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (number_literal "2"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        local_48 = local_48 | 0x4000;\n      }" ({ "{") (expression_statement "local_48 = local_48 | 0x4000;" (assignment_expression "local_48 = local_48 | 0x4000" (identifier "local_48") (= "=") (binary_expression "local_48 | 0x4000" (identifier "local_48") (| "|") (number_literal "0x4000"))) (; ";")) (} "}")) (else_clause "else {\n        local_48 = local_48 | 0x400;\n      }" (else "else") (compound_statement "{\n        local_48 = local_48 | 0x400;\n      }" ({ "{") (expression_statement "local_48 = local_48 | 0x400;" (assignment_expression "local_48 = local_48 | 0x400" (identifier "local_48") (= "=") (binary_expression "local_48 | 0x400" (identifier "local_48") (| "|") (number_literal "0x400"))) (; ";")) (} "}")))) (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 "uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2;" (assignment_expression "uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2" (identifier "uVar21") (= "=") (binary_expression "(int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)) * 2" (cast_expression "(int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0))" (( "(") (binary_expression "(ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /\n                    (0x10 / (ulonglong)local_a0)" (call_expression "(ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6])" (call_expression "(ulonglong)(uint)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(uint)" (( "(") (identifier "uint") () ")"))) (argument_list "((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6])" (( "(") (binary_expression "(int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]" (binary_expression "(int)(0x10 / (ulonglong)local_a0) + -1" (cast_expression "(int)(0x10 / (ulonglong)local_a0)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(0x10 / (ulonglong)local_a0)" (( "(") (binary_expression "0x10 / (ulonglong)local_a0" (number_literal "0x10") (/ "/") (cast_expression "(ulonglong)local_a0" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "local_a0"))) () ")"))) (+ "+") (number_literal "-1")) (+ "+") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) () ")"))) (/ "/") (parenthesized_expression "(0x10 / (ulonglong)local_a0)" (( "(") (binary_expression "0x10 / (ulonglong)local_a0" (number_literal "0x10") (/ "/") (cast_expression "(ulonglong)local_a0" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "local_a0"))) () ")"))) () ")"))) (* "*") (number_literal "2"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,uVar21 & 0xffff);" (call_expression "WriteBlobMSBShort(param_2,uVar21 & 0xffff)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,uVar21 & 0xffff)" (( "(") (identifier "param_2") (, ",") (binary_expression "uVar21 & 0xffff" (identifier "uVar21") (& "&") (number_literal "0xffff")) () ")"))) (; ";")) (if_statement "if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_48 = local_48 | 0x8000;\n      }" (if "if") (parenthesized_expression "((*param_1 == 0x13) || (*param_1 == 7))" (( "(") (binary_expression "(*param_1 == 0x13) || (*param_1 == 7)" (parenthesized_expression "(*param_1 == 0x13)" (( "(") (binary_expression "*param_1 == 0x13" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0x13")) () ")")) (|| "||") (parenthesized_expression "(*param_1 == 7)" (( "(") (binary_expression "*param_1 == 7" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "7")) () ")"))) () ")")) (compound_statement "{\n        local_48 = local_48 | 0x8000;\n      }" ({ "{") (expression_statement "local_48 = local_48 | 0x8000;" (assignment_expression "local_48 = local_48 | 0x8000" (identifier "local_48") (= "=") (binary_expression "local_48 | 0x8000" (identifier "local_48") (| "|") (number_literal "0x8000"))) (; ";")) (} "}"))) (expression_statement "WriteBlobMSBShort(param_2,local_48);" (call_expression "WriteBlobMSBShort(param_2,local_48)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,local_48)" (( "(") (identifier "param_2") (, ",") (identifier "local_48") () ")"))) (; ";")) (expression_statement "WriteBlobByte(param_2,local_a0);" (call_expression "WriteBlobByte(param_2,local_a0)" (identifier "WriteBlobByte") (argument_list "(param_2,local_a0)" (( "(") (identifier "param_2") (, ",") (identifier "local_a0") () ")"))) (; ";")) (if_statement "if (1 < local_a0) {\n        local_46 = 1;\n      }" (if "if") (parenthesized_expression "(1 < local_a0)" (( "(") (binary_expression "1 < local_a0" (number_literal "1") (< "<") (identifier "local_a0")) () ")")) (compound_statement "{\n        local_46 = 1;\n      }" ({ "{") (expression_statement "local_46 = 1;" (assignment_expression "local_46 = 1" (identifier "local_46") (= "=") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if ((*param_1 == 0x13) || (*param_1 == 7)) {\n        local_46 = 2;\n      }" (if "if") (parenthesized_expression "((*param_1 == 0x13) || (*param_1 == 7))" (( "(") (binary_expression "(*param_1 == 0x13) || (*param_1 == 7)" (parenthesized_expression "(*param_1 == 0x13)" (( "(") (binary_expression "*param_1 == 0x13" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0x13")) () ")")) (|| "||") (parenthesized_expression "(*param_1 == 7)" (( "(") (binary_expression "*param_1 == 7" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "7")) () ")"))) () ")")) (compound_statement "{\n        local_46 = 2;\n      }" ({ "{") (expression_statement "local_46 = 2;" (assignment_expression "local_46 = 2" (identifier "local_46") (= "=") (number_literal "2")) (; ";")) (} "}"))) (expression_statement "WriteBlobByte(param_2,local_46);" (call_expression "WriteBlobByte(param_2,local_46)" (identifier "WriteBlobByte") (argument_list "(param_2,local_46)" (( "(") (identifier "param_2") (, ",") (identifier "local_46") () ")"))) (; ";")) (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 "WriteBlobByte(param_2,0);" (call_expression "WriteBlobByte(param_2,0)" (identifier "WriteBlobByte") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (*param_1 == 0x13) {\n        WriteBlobByte(param_2,1);\n      }\n      else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }" (if "if") (parenthesized_expression "(*param_1 == 0x13)" (( "(") (binary_expression "*param_1 == 0x13" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0x13")) () ")")) (compound_statement "{\n        WriteBlobByte(param_2,1);\n      }" ({ "{") (expression_statement "WriteBlobByte(param_2,1);" (call_expression "WriteBlobByte(param_2,1)" (identifier "WriteBlobByte") (argument_list "(param_2,1)" (( "(") (identifier "param_2") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}")) (else_clause "else if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }" (else "else") (if_statement "if (*param_1 == 7) {\n        WriteBlobByte(param_2,0);\n      }\n      else {\n        WriteBlobByte(param_2,0xff);\n      }" (if "if") (parenthesized_expression "(*param_1 == 7)" (( "(") (binary_expression "*param_1 == 7" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "7")) () ")")) (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") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        WriteBlobByte(param_2,0xff);\n      }" (else "else") (compound_statement "{\n        WriteBlobByte(param_2,0xff);\n      }" ({ "{") (expression_statement "WriteBlobByte(param_2,0xff);" (call_expression "WriteBlobByte(param_2,0xff)" (identifier "WriteBlobByte") (argument_list "(param_2,0xff)" (( "(") (identifier "param_2") (, ",") (number_literal "0xff") () ")"))) (; ";")) (} "}")))))) (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") () ")"))) (; ";")) (if_statement "if (local_a0 == 0x10) {\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }\n      else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }" (if "if") (parenthesized_expression "(local_a0 == 0x10)" (( "(") (binary_expression "local_a0 == 0x10" (identifier "local_a0") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,6);\n        WriteBlobByte(param_2,5);\n        WriteBlobByte(param_2,0);\n        WriteBlobMSBLong(param_2,0);\n        local_64 = 0x18;\nLAB_002607b8:\n        local_60 = 0;\n      }" ({ "{") (expression_statement "WriteBlobByte(param_2,5);" (call_expression "WriteBlobByte(param_2,5)" (identifier "WriteBlobByte") (argument_list "(param_2,5)" (( "(") (identifier "param_2") (, ",") (number_literal "5") () ")"))) (; ";")) (expression_statement "WriteBlobByte(param_2,6);" (call_expression "WriteBlobByte(param_2,6)" (identifier "WriteBlobByte") (argument_list "(param_2,6)" (( "(") (identifier "param_2") (, ",") (number_literal "6") () ")"))) (; ";")) (expression_statement "WriteBlobByte(param_2,5);" (call_expression "WriteBlobByte(param_2,5)" (identifier "WriteBlobByte") (argument_list "(param_2,5)" (( "(") (identifier "param_2") (, ",") (number_literal "5") () ")"))) (; ";")) (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 "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 "local_64 = 0x18;" (assignment_expression "local_64 = 0x18" (identifier "local_64") (= "=") (number_literal "0x18")) (; ";")) (labeled_statement "LAB_002607b8:\n        local_60 = 0;" (statement_identifier "LAB_002607b8") (: ":") (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }" (else "else") (compound_statement "{\n        local_64 = 0x10;\n        if (local_a0 != 8) goto LAB_002607b8;\n        if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }\n        iVar20 = IdentifyPaletteImage(param_2,param_3);\n        piVar15[3] = (iVar20 == 0) + 1;\n        *piVar15 = param_2[9];\n        QuantizeImage(piVar15,param_2,param_3);\n        WriteBlobMSBShort(param_2,(short)param_2[9]);\n        if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }\n        iVar20 = 0;\n        local_d4 = 0;\n        do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);\n        local_64 = local_d4 * 4 + 0x12;\n        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);\n      }" ({ "{") (expression_statement "local_64 = 0x10;" (assignment_expression "local_64 = 0x10" (identifier "local_64") (= "=") (number_literal "0x10")) (; ";")) (if_statement "if (local_a0 != 8) goto LAB_002607b8;" (if "if") (parenthesized_expression "(local_a0 != 8)" (( "(") (binary_expression "local_a0 != 8" (identifier "local_a0") (!= "!=") (number_literal "8")) () ")")) (goto_statement "goto LAB_002607b8;" (goto "goto") (statement_identifier "LAB_002607b8") (; ";"))) (if_statement "if ((local_48 & 0x4000) == 0) {\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }" (if "if") (parenthesized_expression "((local_48 & 0x4000) == 0)" (( "(") (binary_expression "(local_48 & 0x4000) == 0" (parenthesized_expression "(local_48 & 0x4000)" (( "(") (binary_expression "local_48 & 0x4000" (identifier "local_48") (& "&") (number_literal "0x4000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);\n          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);\n          RemapImage(piVar15,param_2,iVar20,param_3);\n          if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }\n          DestroyImage(iVar20);\n          local_64 = 0x10;\n          goto LAB_002607b8;\n        }" ({ "{") (expression_statement "iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);" (assignment_expression "iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3)" (identifier "iVar20") (= "=") (call_expression "ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3)" (identifier "ConstituteImage") (argument_list "(0x100,1,"RGB",1,&DAT_00344940,param_3)" (( "(") (number_literal "0x100") (, ",") (number_literal "1") (, ",") (string_literal ""RGB"" (" """) (string_content "RGB") (" """)) (, ",") (number_literal "1") (, ",") (pointer_expression "&DAT_00344940" (& "&") (identifier "DAT_00344940")) (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);" (call_expression "TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3)" (identifier "TransformImageColorspace") (argument_list "(iVar20,*(undefined4 *)(iVar20 + 4),param_3)" (( "(") (identifier "iVar20") (, ",") (pointer_expression "*(undefined4 *)(iVar20 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 4)" (( "(") (binary_expression "iVar20 + 4" (identifier "iVar20") (+ "+") (number_literal "4")) () ")")))) (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "RemapImage(piVar15,param_2,iVar20,param_3);" (call_expression "RemapImage(piVar15,param_2,iVar20,param_3)" (identifier "RemapImage") (argument_list "(piVar15,param_2,iVar20,param_3)" (( "(") (identifier "piVar15") (, ",") (identifier "param_2") (, ",") (identifier "iVar20") (, ",") (identifier "param_3") () ")"))) (; ";")) (if_statement "if (0 < param_2[7]) {\n            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\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            iVar19 = param_2[6];\n            local_78 = (char *)0x0;\n            do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);\n          }" ({ "{") (expression_statement "iVar19 = param_2[6];" (assignment_expression "iVar19 = param_2[6]" (identifier "iVar19") (= "=") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "local_78 = (char *)0x0;" (assignment_expression "local_78 = (char *)0x0" (identifier "local_78") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            } while ((int)local_78 < param_2[7]);" (do "do") (compound_statement "{\n              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);\n              if (iVar25 == 0) break;\n              iVar19 = param_2[6];\n              if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }\nLAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);\n            }" ({ "{") (expression_statement "iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);" (assignment_expression "iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3)" (identifier "iVar25") (= "=") (call_expression "GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3)" (identifier "GetAuthenticPixels") (argument_list "(param_2,0,local_78,iVar19,1,param_3)" (( "(") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "local_78") (, ",") (identifier "iVar19") (, ",") (number_literal "1") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar25 == 0) break;" (if "if") (parenthesized_expression "(iVar25 == 0)" (( "(") (binary_expression "iVar25 == 0" (identifier "iVar25") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar19 = param_2[6];" (assignment_expression "iVar19 = param_2[6]" (identifier "iVar19") (= "=") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if (0 < iVar19) {\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }" (if "if") (parenthesized_expression "(0 < iVar19)" (( "(") (binary_expression "0 < iVar19" (number_literal "0") (< "<") (identifier "iVar19")) () ")")) (compound_statement "{\n                iVar5 = param_2[10];\n                local_d4 = 0;\n                iVar6 = param_2[0xaa];\n                iVar7 = param_2[0xa6];\n                iVar8 = *(int *)(iVar6 + 0x40);\nLAB_002618c8:\n                iVar26 = iVar5;\n                if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }\n                dVar2 = *(double *)(iVar26 + 0x20);\n                if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                dVar2 = -1.0;\n                goto LAB_00261adb;\n              }" ({ "{") (expression_statement "iVar5 = param_2[10];" (assignment_expression "iVar5 = param_2[10]" (identifier "iVar5") (= "=") (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" (identifier "local_d4") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar6 = param_2[0xaa];" (assignment_expression "iVar6 = param_2[0xaa]" (identifier "iVar6") (= "=") (subscript_expression "param_2[0xaa]" (identifier "param_2") ([ "[") (number_literal "0xaa") (] "]"))) (; ";")) (expression_statement "iVar7 = param_2[0xa6];" (assignment_expression "iVar7 = param_2[0xa6]" (identifier "iVar7") (= "=") (subscript_expression "param_2[0xa6]" (identifier "param_2") ([ "[") (number_literal "0xa6") (] "]"))) (; ";")) (expression_statement "iVar8 = *(int *)(iVar6 + 0x40);" (assignment_expression "iVar8 = *(int *)(iVar6 + 0x40)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar6 + 0x40)" (* "*") (cast_expression "(int *)(iVar6 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x40)" (( "(") (binary_expression "iVar6 + 0x40" (identifier "iVar6") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (labeled_statement "LAB_002618c8:\n                iVar26 = iVar5;" (statement_identifier "LAB_002618c8") (: ":") (expression_statement "iVar26 = iVar5;" (assignment_expression "iVar26 = iVar5" (identifier "iVar26") (= "=") (identifier "iVar5")) (; ";"))) (if_statement "if (iVar8 != 0) {\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;\n                }" ({ "{") (expression_statement "iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5;" (assignment_expression "iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5" (identifier "iVar26") (= "=") (binary_expression "(int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +\n                           iVar5" (binary_expression "(int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50" (cast_expression "(int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8))" (identifier "ROUND") (argument_list "(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8))" (( "(") (pointer_expression "*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)" (* "*") (cast_expression "(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + *(int *)(iVar6 + 0x44) * 8)" (( "(") (binary_expression "iVar25 + *(int *)(iVar6 + 0x44) * 8" (identifier "iVar25") (+ "+") (binary_expression "*(int *)(iVar6 + 0x44) * 8" (pointer_expression "*(int *)(iVar6 + 0x44)" (* "*") (cast_expression "(int *)(iVar6 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x44)" (( "(") (binary_expression "iVar6 + 0x44" (identifier "iVar6") (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "8"))) () ")")))) () ")")))) (* "*") (number_literal "0x50")) (+ "+") (identifier "iVar5"))) (; ";")) (} "}"))) (expression_statement "dVar2 = *(double *)(iVar26 + 0x20);" (assignment_expression "dVar2 = *(double *)(iVar26 + 0x20)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(iVar26 + 0x20)" (* "*") (cast_expression "(double *)(iVar26 + 0x20)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x20)" (( "(") (binary_expression "iVar26 + 0x20" (identifier "iVar26") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (NAN(dVar2)) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" (if "if") (parenthesized_expression "(NAN(dVar2))" (( "(") (call_expression "NAN(dVar2)" (identifier "NAN") (argument_list "(dVar2)" (( "(") (identifier "dVar2") () ")"))) () ")")) (compound_statement "{\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" ({ "{") (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar18 = &DAT_00344940;" (assignment_expression "pcVar18 = &DAT_00344940" (identifier "pcVar18") (= "=") (pointer_expression "&DAT_00344940" (& "&") (identifier "DAT_00344940"))) (; ";")) (do_statement "do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);" (do "do") (compound_statement "{\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  }" ({ "{") (if_statement "if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }" (if "if") (parenthesized_expression "(*pcVar18 == '\0')" (( "(") (binary_expression "*pcVar18 == '\0'" (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }" ({ "{") (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" (identifier "cVar27") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }" (if "if") (parenthesized_expression "(0.0 < *(double *)(iVar26 + 0x28))" (( "(") (binary_expression "0.0 < *(double *)(iVar26 + 0x28)" (number_literal "0.0") (< "<") (pointer_expression "*(double *)(iVar26 + 0x28)" (* "*") (cast_expression "(double *)(iVar26 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x28)" (( "(") (binary_expression "iVar26 + 0x28" (identifier "iVar26") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }" ({ "{") (expression_statement "dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;" (assignment_expression "dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c" (identifier "dVar2") (= "=") (binary_expression "*(double *)(iVar26 + 0x28) / (double)DAT_002e814c" (pointer_expression "*(double *)(iVar26 + 0x28)" (* "*") (cast_expression "(double *)(iVar26 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x28)" (( "(") (binary_expression "iVar26 + 0x28" (identifier "iVar26") (+ "+") (number_literal "0x28")) () ")")))) (/ "/") (cast_expression "(double)DAT_002e814c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e814c")))) (; ";")) (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" (identifier "cVar27") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }" (if "if") (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" (( "(") (binary_expression "dVar2 < (double)DAT_002e8150" (identifier "dVar2") (< "<") (cast_expression "(double)DAT_002e8150" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e8150"))) () ")")) (compound_statement "{\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }" ({ "{") (expression_statement "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" (identifier "cVar27") (= "=") (cast_expression "(char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (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"))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }" (if "if") (parenthesized_expression "(pcVar18[1] == cVar27)" (( "(") (binary_expression "pcVar18[1] == cVar27" (subscript_expression "pcVar18[1]" (identifier "pcVar18") ([ "[") (number_literal "1") (] "]")) (== "==") (identifier "cVar27")) () ")")) (compound_statement "{\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }" ({ "{") (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" (identifier "cVar27") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" (if "if") (parenthesized_expression "(0.0 < *(double *)(iVar26 + 0x30))" (( "(") (binary_expression "0.0 < *(double *)(iVar26 + 0x30)" (number_literal "0.0") (< "<") (pointer_expression "*(double *)(iVar26 + 0x30)" (* "*") (cast_expression "(double *)(iVar26 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x30)" (( "(") (binary_expression "iVar26 + 0x30" (identifier "iVar26") (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (compound_statement "{\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" ({ "{") (expression_statement "dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;" (assignment_expression "dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c" (identifier "dVar2") (= "=") (binary_expression "*(double *)(iVar26 + 0x30) / (double)DAT_002e814c" (pointer_expression "*(double *)(iVar26 + 0x30)" (* "*") (cast_expression "(double *)(iVar26 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x30)" (( "(") (binary_expression "iVar26 + 0x30" (identifier "iVar26") (+ "+") (number_literal "0x30")) () ")")))) (/ "/") (cast_expression "(double)DAT_002e814c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e814c")))) (; ";")) (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" (identifier "cVar27") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" (if "if") (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" (( "(") (binary_expression "dVar2 < (double)DAT_002e8150" (identifier "dVar2") (< "<") (cast_expression "(double)DAT_002e8150" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e8150"))) () ")")) (compound_statement "{\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" ({ "{") (expression_statement "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" (identifier "cVar27") (= "=") (cast_expression "(char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (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"))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (pcVar18[2] == cVar27) goto LAB_00261ad3;" (if "if") (parenthesized_expression "(pcVar18[2] == cVar27)" (( "(") (binary_expression "pcVar18[2] == cVar27" (subscript_expression "pcVar18[2]" (identifier "pcVar18") ([ "[") (number_literal "2") (] "]")) (== "==") (identifier "cVar27")) () ")")) (goto_statement "goto LAB_00261ad3;" (goto "goto") (statement_identifier "LAB_00261ad3") (; ";"))) (} "}"))) (} "}"))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" (identifier "iVar22") (= "=") (binary_expression "iVar22 + 1" (identifier "iVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar18 = pcVar18 + 3;" (assignment_expression "pcVar18 = pcVar18 + 3" (identifier "pcVar18") (= "=") (binary_expression "pcVar18 + 3" (identifier "pcVar18") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar22 != 0x100)" (( "(") (binary_expression "iVar22 != 0x100" (identifier "iVar22") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (} "}")) (else_clause "else if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" (else "else") (if_statement "if (dVar2 <= 0.0) {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }\n                else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" (if "if") (parenthesized_expression "(dVar2 <= 0.0)" (( "(") (binary_expression "dVar2 <= 0.0" (identifier "dVar2") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" ({ "{") (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar18 = &DAT_00344940;" (assignment_expression "pcVar18 = &DAT_00344940" (identifier "pcVar18") (= "=") (pointer_expression "&DAT_00344940" (& "&") (identifier "DAT_00344940"))) (; ";")) (do_statement "do {\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);" (do "do") (compound_statement "{\n                    if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  }" ({ "{") (if_statement "if (*pcVar18 == '\0') {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }" (if "if") (parenthesized_expression "(*pcVar18 == '\0')" (( "(") (binary_expression "*pcVar18 == '\0'" (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }" ({ "{") (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" (identifier "cVar27") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }" (if "if") (parenthesized_expression "(0.0 < *(double *)(iVar26 + 0x28))" (( "(") (binary_expression "0.0 < *(double *)(iVar26 + 0x28)" (number_literal "0.0") (< "<") (pointer_expression "*(double *)(iVar26 + 0x28)" (* "*") (cast_expression "(double *)(iVar26 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x28)" (( "(") (binary_expression "iVar26 + 0x28" (identifier "iVar26") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }\n                      }" ({ "{") (expression_statement "dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;" (assignment_expression "dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c" (identifier "dVar2") (= "=") (binary_expression "*(double *)(iVar26 + 0x28) / (double)DAT_002e814c" (pointer_expression "*(double *)(iVar26 + 0x28)" (* "*") (cast_expression "(double *)(iVar26 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x28)" (( "(") (binary_expression "iVar26 + 0x28" (identifier "iVar26") (+ "+") (number_literal "0x28")) () ")")))) (/ "/") (cast_expression "(double)DAT_002e814c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e814c")))) (; ";")) (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" (identifier "cVar27") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }" (if "if") (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" (( "(") (binary_expression "dVar2 < (double)DAT_002e8150" (identifier "dVar2") (< "<") (cast_expression "(double)DAT_002e8150" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e8150"))) () ")")) (compound_statement "{\n                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                        }" ({ "{") (expression_statement "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" (identifier "cVar27") (= "=") (cast_expression "(char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (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"))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }" (if "if") (parenthesized_expression "(pcVar18[1] == cVar27)" (( "(") (binary_expression "pcVar18[1] == cVar27" (subscript_expression "pcVar18[1]" (identifier "pcVar18") ([ "[") (number_literal "1") (] "]")) (== "==") (identifier "cVar27")) () ")")) (compound_statement "{\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }" ({ "{") (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" (identifier "cVar27") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" (if "if") (parenthesized_expression "(0.0 < *(double *)(iVar26 + 0x30))" (( "(") (binary_expression "0.0 < *(double *)(iVar26 + 0x30)" (number_literal "0.0") (< "<") (pointer_expression "*(double *)(iVar26 + 0x30)" (* "*") (cast_expression "(double *)(iVar26 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x30)" (( "(") (binary_expression "iVar26 + 0x30" (identifier "iVar26") (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (compound_statement "{\n                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }\n                        }" ({ "{") (expression_statement "dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;" (assignment_expression "dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c" (identifier "dVar2") (= "=") (binary_expression "*(double *)(iVar26 + 0x30) / (double)DAT_002e814c" (pointer_expression "*(double *)(iVar26 + 0x30)" (* "*") (cast_expression "(double *)(iVar26 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x30)" (( "(") (binary_expression "iVar26 + 0x30" (identifier "iVar26") (+ "+") (number_literal "0x30")) () ")")))) (/ "/") (cast_expression "(double)DAT_002e814c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e814c")))) (; ";")) (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" (identifier "cVar27") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" (if "if") (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" (( "(") (binary_expression "dVar2 < (double)DAT_002e8150" (identifier "dVar2") (< "<") (cast_expression "(double)DAT_002e8150" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e8150"))) () ")")) (compound_statement "{\n                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n                          }" ({ "{") (expression_statement "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" (identifier "cVar27") (= "=") (cast_expression "(char)(short)ROUND(dVar2 + (double)DAT_002df2b8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (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"))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (pcVar18[2] == cVar27) goto LAB_00261ad3;" (if "if") (parenthesized_expression "(pcVar18[2] == cVar27)" (( "(") (binary_expression "pcVar18[2] == cVar27" (subscript_expression "pcVar18[2]" (identifier "pcVar18") ([ "[") (number_literal "2") (] "]")) (== "==") (identifier "cVar27")) () ")")) (goto_statement "goto LAB_00261ad3;" (goto "goto") (statement_identifier "LAB_00261ad3") (; ";"))) (} "}"))) (} "}"))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" (identifier "iVar22") (= "=") (binary_expression "iVar22 + 1" (identifier "iVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar18 = pcVar18 + 3;" (assignment_expression "pcVar18 = pcVar18 + 3" (identifier "pcVar18") (= "=") (binary_expression "pcVar18 + 3" (identifier "pcVar18") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar22 != 0x100)" (( "(") (binary_expression "iVar22 != 0x100" (identifier "iVar22") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (} "}")) (else_clause "else {\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" (else "else") (compound_statement "{\n                  iVar22 = 0;\n                  pcVar18 = &DAT_00344940;\n                  do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);\n                }" ({ "{") (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar18 = &DAT_00344940;" (assignment_expression "pcVar18 = &DAT_00344940" (identifier "pcVar18") (= "=") (pointer_expression "&DAT_00344940" (& "&") (identifier "DAT_00344940"))) (; ";")) (do_statement "do {\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  } while (iVar22 != 0x100);" (do "do") (compound_statement "{\n                    cVar27 = -1;\n                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }\n                    if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }\n                    iVar22 = iVar22 + 1;\n                    pcVar18 = pcVar18 + 3;\n                  }" ({ "{") (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" (identifier "cVar27") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }" (if "if") (parenthesized_expression "(dVar2 / (double)DAT_002e814c < (double)DAT_002e8150)" (( "(") (binary_expression "dVar2 / (double)DAT_002e814c < (double)DAT_002e8150" (binary_expression "dVar2 / (double)DAT_002e814c" (identifier "dVar2") (/ "/") (cast_expression "(double)DAT_002e814c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e814c"))) (< "<") (cast_expression "(double)DAT_002e8150" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e8150"))) () ")")) (compound_statement "{\n                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);\n                    }" ({ "{") (expression_statement "cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8)" (identifier "cVar27") (= "=") (cast_expression "(char)(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (cast_expression "(short)ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8)" (identifier "ROUND") (argument_list "(dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8)" (( "(") (binary_expression "dVar2 / (double)DAT_002e814c +\n                                                  (double)DAT_002df2b8" (binary_expression "dVar2 / (double)DAT_002e814c" (identifier "dVar2") (/ "/") (cast_expression "(double)DAT_002e814c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e814c"))) (+ "+") (cast_expression "(double)DAT_002df2b8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df2b8"))) () ")")))))) (; ";")) (} "}"))) (if_statement "if (*pcVar18 == cVar27) {\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }" (if "if") (parenthesized_expression "(*pcVar18 == cVar27)" (( "(") (binary_expression "*pcVar18 == cVar27" (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) (== "==") (identifier "cVar27")) () ")")) (compound_statement "{\n                      cVar27 = '\0';\n                      if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }\n                      if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }\n                    }" ({ "{") (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" (identifier "cVar27") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (0.0 < *(double *)(iVar26 + 0x28)) {\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }" (if "if") (parenthesized_expression "(0.0 < *(double *)(iVar26 + 0x28))" (( "(") (binary_expression "0.0 < *(double *)(iVar26 + 0x28)" (number_literal "0.0") (< "<") (pointer_expression "*(double *)(iVar26 + 0x28)" (* "*") (cast_expression "(double *)(iVar26 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x28)" (( "(") (binary_expression "iVar26 + 0x28" (identifier "iVar26") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;\n                        cVar27 = -1;\n                        if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }\n                      }" ({ "{") (expression_statement "dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;" (assignment_expression "dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c" (identifier "dVar4") (= "=") (binary_expression "*(double *)(iVar26 + 0x28) / (double)DAT_002e814c" (pointer_expression "*(double *)(iVar26 + 0x28)" (* "*") (cast_expression "(double *)(iVar26 + 0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x28)" (( "(") (binary_expression "iVar26 + 0x28" (identifier "iVar26") (+ "+") (number_literal "0x28")) () ")")))) (/ "/") (cast_expression "(double)DAT_002e814c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e814c")))) (; ";")) (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" (identifier "cVar27") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (dVar4 < (double)DAT_002e8150) {\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }" (if "if") (parenthesized_expression "(dVar4 < (double)DAT_002e8150)" (( "(") (binary_expression "dVar4 < (double)DAT_002e8150" (identifier "dVar4") (< "<") (cast_expression "(double)DAT_002e8150" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e8150"))) () ")")) (compound_statement "{\n                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                        }" ({ "{") (expression_statement "cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8)" (identifier "cVar27") (= "=") (cast_expression "(char)(short)ROUND(dVar4 + (double)DAT_002df2b8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (cast_expression "(short)ROUND(dVar4 + (double)DAT_002df2b8)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(dVar4 + (double)DAT_002df2b8)" (identifier "ROUND") (argument_list "(dVar4 + (double)DAT_002df2b8)" (( "(") (binary_expression "dVar4 + (double)DAT_002df2b8" (identifier "dVar4") (+ "+") (cast_expression "(double)DAT_002df2b8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df2b8"))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (pcVar18[1] == cVar27) {\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }" (if "if") (parenthesized_expression "(pcVar18[1] == cVar27)" (( "(") (binary_expression "pcVar18[1] == cVar27" (subscript_expression "pcVar18[1]" (identifier "pcVar18") ([ "[") (number_literal "1") (] "]")) (== "==") (identifier "cVar27")) () ")")) (compound_statement "{\n                        cVar27 = '\0';\n                        if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }\n                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;\n                      }" ({ "{") (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" (identifier "cVar27") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (0.0 < *(double *)(iVar26 + 0x30)) {\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }" (if "if") (parenthesized_expression "(0.0 < *(double *)(iVar26 + 0x30))" (( "(") (binary_expression "0.0 < *(double *)(iVar26 + 0x30)" (number_literal "0.0") (< "<") (pointer_expression "*(double *)(iVar26 + 0x30)" (* "*") (cast_expression "(double *)(iVar26 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x30)" (( "(") (binary_expression "iVar26 + 0x30" (identifier "iVar26") (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (compound_statement "{\n                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;\n                          cVar27 = -1;\n                          if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }\n                        }" ({ "{") (expression_statement "dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;" (assignment_expression "dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c" (identifier "dVar4") (= "=") (binary_expression "*(double *)(iVar26 + 0x30) / (double)DAT_002e814c" (pointer_expression "*(double *)(iVar26 + 0x30)" (* "*") (cast_expression "(double *)(iVar26 + 0x30)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar26 + 0x30)" (( "(") (binary_expression "iVar26 + 0x30" (identifier "iVar26") (+ "+") (number_literal "0x30")) () ")")))) (/ "/") (cast_expression "(double)DAT_002e814c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e814c")))) (; ";")) (expression_statement "cVar27 = -1;" (assignment_expression "cVar27 = -1" (identifier "cVar27") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (dVar4 < (double)DAT_002e8150) {\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }" (if "if") (parenthesized_expression "(dVar4 < (double)DAT_002e8150)" (( "(") (binary_expression "dVar4 < (double)DAT_002e8150" (identifier "dVar4") (< "<") (cast_expression "(double)DAT_002e8150" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e8150"))) () ")")) (compound_statement "{\n                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);\n                          }" ({ "{") (expression_statement "cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);" (assignment_expression "cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8)" (identifier "cVar27") (= "=") (cast_expression "(char)(short)ROUND(dVar4 + (double)DAT_002df2b8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (cast_expression "(short)ROUND(dVar4 + (double)DAT_002df2b8)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(dVar4 + (double)DAT_002df2b8)" (identifier "ROUND") (argument_list "(dVar4 + (double)DAT_002df2b8)" (( "(") (binary_expression "dVar4 + (double)DAT_002df2b8" (identifier "dVar4") (+ "+") (cast_expression "(double)DAT_002df2b8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df2b8"))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (pcVar18[2] == cVar27) goto LAB_00261ad3;" (if "if") (parenthesized_expression "(pcVar18[2] == cVar27)" (( "(") (binary_expression "pcVar18[2] == cVar27" (subscript_expression "pcVar18[2]" (identifier "pcVar18") ([ "[") (number_literal "2") (] "]")) (== "==") (identifier "cVar27")) () ")")) (goto_statement "goto LAB_00261ad3;" (goto "goto") (statement_identifier "LAB_00261ad3") (; ";"))) (} "}"))) (} "}"))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" (identifier "iVar22") (= "=") (binary_expression "iVar22 + 1" (identifier "iVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar18 = pcVar18 + 3;" (assignment_expression "pcVar18 = pcVar18 + 3" (identifier "pcVar18") (= "=") (binary_expression "pcVar18 + 3" (identifier "pcVar18") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar22 != 0x100)" (( "(") (binary_expression "iVar22 != 0x100" (identifier "iVar22") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (} "}")))))) (expression_statement "dVar2 = -1.0;" (assignment_expression "dVar2 = -1.0" (identifier "dVar2") (= "=") (number_literal "-1.0")) (; ";")) (goto_statement "goto LAB_00261adb;" (goto "goto") (statement_identifier "LAB_00261adb") (; ";")) (} "}"))) (labeled_statement "LAB_00261b09:\n              local_78 = (char *)((int)local_78 + 1);" (statement_identifier "LAB_00261b09") (: ":") (expression_statement "local_78 = (char *)((int)local_78 + 1);" (assignment_expression "local_78 = (char *)((int)local_78 + 1)" (identifier "local_78") (= "=") (cast_expression "(char *)((int)local_78 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_78 + 1)" (( "(") (binary_expression "(int)local_78 + 1" (cast_expression "(int)local_78" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_78")) (+ "+") (number_literal "1")) () ")")))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "((int)local_78 < param_2[7])" (( "(") (binary_expression "(int)local_78 < param_2[7]" (cast_expression "(int)local_78" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_78")) (< "<") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) () ")")) (; ";")) (} "}"))) (expression_statement "DestroyImage(iVar20);" (call_expression "DestroyImage(iVar20)" (identifier "DestroyImage") (argument_list "(iVar20)" (( "(") (identifier "iVar20") () ")"))) (; ";")) (expression_statement "local_64 = 0x10;" (assignment_expression "local_64 = 0x10" (identifier "local_64") (= "=") (number_literal "0x10")) (; ";")) (goto_statement "goto LAB_002607b8;" (goto "goto") (statement_identifier "LAB_002607b8") (; ";")) (} "}"))) (expression_statement "iVar20 = IdentifyPaletteImage(param_2,param_3);" (assignment_expression "iVar20 = IdentifyPaletteImage(param_2,param_3)" (identifier "iVar20") (= "=") (call_expression "IdentifyPaletteImage(param_2,param_3)" (identifier "IdentifyPaletteImage") (argument_list "(param_2,param_3)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "piVar15[3] = (iVar20 == 0) + 1;" (assignment_expression "piVar15[3] = (iVar20 == 0) + 1" (subscript_expression "piVar15[3]" (identifier "piVar15") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "(iVar20 == 0) + 1" (parenthesized_expression "(iVar20 == 0)" (( "(") (binary_expression "iVar20 == 0" (identifier "iVar20") (== "==") (number_literal "0")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*piVar15 = param_2[9];" (assignment_expression "*piVar15 = param_2[9]" (pointer_expression "*piVar15" (* "*") (identifier "piVar15")) (= "=") (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "QuantizeImage(piVar15,param_2,param_3);" (call_expression "QuantizeImage(piVar15,param_2,param_3)" (identifier "QuantizeImage") (argument_list "(piVar15,param_2,param_3)" (( "(") (identifier "piVar15") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,(short)param_2[9]);" (call_expression "WriteBlobMSBShort(param_2,(short)param_2[9])" (identifier "WriteBlobMSBShort") (argument_list "(param_2,(short)param_2[9])" (( "(") (identifier "param_2") (, ",") (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") (] "]"))) () ")"))) (; ";")) (if_statement "if (param_2[9] == 0) {\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }" (if "if") (parenthesized_expression "(param_2[9] == 0)" (( "(") (binary_expression "param_2[9] == 0" (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_64 = 0x12;\n          goto LAB_002607b8;\n        }" ({ "{") (expression_statement "local_64 = 0x12;" (assignment_expression "local_64 = 0x12" (identifier "local_64") (= "=") (number_literal "0x12")) (; ";")) (goto_statement "goto LAB_002607b8;" (goto "goto") (statement_identifier "LAB_002607b8") (; ";")) (} "}"))) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" (identifier "iVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" (identifier "local_d4") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        } while (local_d4 < (uint)param_2[9]);" (do "do") (compound_statement "{\n          WriteBlobByte(param_2,local_d4 & 0xff);\n          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          WriteBlobByte(param_2,uVar11);\n          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);\n          uVar11 = 0;\n          if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }\n          }\n          iVar20 = iVar20 + 0x50;\n          WriteBlobByte(param_2,uVar11);\n          local_d4 = local_d4 + 1;\n        }" ({ "{") (expression_statement "WriteBlobByte(param_2,local_d4 & 0xff);" (call_expression "WriteBlobByte(param_2,local_d4 & 0xff)" (identifier "WriteBlobByte") (argument_list "(param_2,local_d4 & 0xff)" (( "(") (identifier "param_2") (, ",") (binary_expression "local_d4 & 0xff" (identifier "local_d4") (& "&") (number_literal "0xff")) () ")"))) (; ";")) (expression_statement "dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);" (assignment_expression "dVar2 = *(double *)(param_2[10] + 0x20 + iVar20)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_2[10] + 0x20 + iVar20)" (* "*") (cast_expression "(double *)(param_2[10] + 0x20 + iVar20)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[10] + 0x20 + iVar20)" (( "(") (binary_expression "param_2[10] + 0x20 + iVar20" (binary_expression "param_2[10] + 0x20" (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")) (+ "+") (number_literal "0x20")) (+ "+") (identifier "iVar20")) () ")"))))) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (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            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (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")))) (; ";")) (expression_statement "uVar11 = 0xff;" (assignment_expression "uVar11 = 0xff" (identifier "uVar11") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }" (if "if") (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" (( "(") (binary_expression "dVar2 < (double)DAT_002e8150" (identifier "dVar2") (< "<") (cast_expression "(double)DAT_002e8150" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e8150"))) () ")")) (compound_statement "{\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }" ({ "{") (expression_statement "uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" (identifier "uVar11") (= "=") (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 "WriteBlobByte(param_2,uVar11);" (call_expression "WriteBlobByte(param_2,uVar11)" (identifier "WriteBlobByte") (argument_list "(param_2,uVar11)" (( "(") (identifier "param_2") (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);" (assignment_expression "dVar2 = *(double *)(param_2[10] + 0x28 + iVar20)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_2[10] + 0x28 + iVar20)" (* "*") (cast_expression "(double *)(param_2[10] + 0x28 + iVar20)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[10] + 0x28 + iVar20)" (( "(") (binary_expression "param_2[10] + 0x28 + iVar20" (binary_expression "param_2[10] + 0x28" (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")) (+ "+") (number_literal "0x28")) (+ "+") (identifier "iVar20")) () ")"))))) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (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            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (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")))) (; ";")) (expression_statement "uVar11 = 0xff;" (assignment_expression "uVar11 = 0xff" (identifier "uVar11") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }" (if "if") (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" (( "(") (binary_expression "dVar2 < (double)DAT_002e8150" (identifier "dVar2") (< "<") (cast_expression "(double)DAT_002e8150" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e8150"))) () ")")) (compound_statement "{\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }" ({ "{") (expression_statement "uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" (identifier "uVar11") (= "=") (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 "WriteBlobByte(param_2,uVar11);" (call_expression "WriteBlobByte(param_2,uVar11)" (identifier "WriteBlobByte") (argument_list "(param_2,uVar11)" (( "(") (identifier "param_2") (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);" (assignment_expression "dVar2 = *(double *)(param_2[10] + 0x30 + iVar20)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_2[10] + 0x30 + iVar20)" (* "*") (cast_expression "(double *)(param_2[10] + 0x30 + iVar20)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[10] + 0x30 + iVar20)" (( "(") (binary_expression "param_2[10] + 0x30 + iVar20" (binary_expression "param_2[10] + 0x30" (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")) (+ "+") (number_literal "0x30")) (+ "+") (identifier "iVar20")) () ")"))))) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0.0 < dVar2) {\n            dVar2 = dVar2 / (double)DAT_002e814c;\n            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (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            uVar11 = 0xff;\n            if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (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")))) (; ";")) (expression_statement "uVar11 = 0xff;" (assignment_expression "uVar11 = 0xff" (identifier "uVar11") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (dVar2 < (double)DAT_002e8150) {\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }" (if "if") (parenthesized_expression "(dVar2 < (double)DAT_002e8150)" (( "(") (binary_expression "dVar2 < (double)DAT_002e8150" (identifier "dVar2") (< "<") (cast_expression "(double)DAT_002e8150" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e8150"))) () ")")) (compound_statement "{\n              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);\n            }" ({ "{") (expression_statement "uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);" (assignment_expression "uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8)" (identifier "uVar11") (= "=") (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 "iVar20 = iVar20 + 0x50;" (assignment_expression "iVar20 = iVar20 + 0x50" (identifier "iVar20") (= "=") (binary_expression "iVar20 + 0x50" (identifier "iVar20") (+ "+") (number_literal "0x50"))) (; ";")) (expression_statement "WriteBlobByte(param_2,uVar11);" (call_expression "WriteBlobByte(param_2,uVar11)" (identifier "WriteBlobByte") (argument_list "(param_2,uVar11)" (( "(") (identifier "param_2") (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "local_d4 = local_d4 + 1;" (assignment_expression "local_d4 = local_d4 + 1" (identifier "local_d4") (= "=") (binary_expression "local_d4 + 1" (identifier "local_d4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_d4 < (uint)param_2[9])" (( "(") (binary_expression "local_d4 < (uint)param_2[9]" (identifier "local_d4") (< "<") (cast_expression "(uint)param_2[9]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]")))) () ")")) (; ";")) (expression_statement "local_64 = local_d4 * 4 + 0x12;" (assignment_expression "local_64 = local_d4 * 4 + 0x12" (identifier "local_64") (= "=") (binary_expression "local_d4 * 4 + 0x12" (binary_expression "local_d4 * 4" (identifier "local_d4") (* "*") (number_literal "4")) (+ "+") (number_literal "0x12"))) (; ";")) (expression_statement "local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);" (assignment_expression "local_60 = (uint)(0xffffffef < local_d4 * 4 + 2)" (identifier "local_60") (= "=") (call_expression "(uint)(0xffffffef < local_d4 * 4 + 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xffffffef < local_d4 * 4 + 2)" (( "(") (binary_expression "0xffffffef < local_d4 * 4 + 2" (number_literal "0xffffffef") (< "<") (binary_expression "local_d4 * 4 + 2" (binary_expression "local_d4 * 4" (identifier "local_d4") (* "*") (number_literal "4")) (+ "+") (number_literal "2"))) () ")")))) (; ";")) (} "}")))) (expression_statement "lVar32 = CONCAT44(local_60,local_64);" (assignment_expression "lVar32 = CONCAT44(local_60,local_64)" (identifier "lVar32") (= "=") (call_expression "CONCAT44(local_60,local_64)" (identifier "CONCAT44") (argument_list "(local_60,local_64)" (( "(") (identifier "local_60") (, ",") (identifier "local_64") () ")")))) (; ";")) (if_statement "if ((short)local_48 < 0) {\n        WriteBlobMSBShort(param_2,0);\n      }" (if "if") (parenthesized_expression "((short)local_48 < 0)" (( "(") (binary_expression "(short)local_48 < 0" (cast_expression "(short)local_48" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "local_48")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        WriteBlobMSBShort(param_2,0);\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 "local_7c = (char *)0x0;" (assignment_expression "local_7c = (char *)0x0" (identifier "local_7c") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar29 = param_2;" (assignment_expression "piVar29 = param_2" (identifier "piVar29") (= "=") (identifier "param_2")) (; ";")) (if_statement "if ((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }" (if "if") (parenthesized_expression "((*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0))" (( "(") (binary_expression "(*param_1 == 7) &&\n         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)" (parenthesized_expression "(*param_1 == 7)" (( "(") (binary_expression "*param_1 == 7" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "7")) () ")")) (&& "&&") (parenthesized_expression "(local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)" (( "(") (comma_expression "local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0" (assignment_expression "local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1)" (identifier "local_7c") (= "=") (cast_expression "(char *)AcquireQuantumMemory(uVar21 + 0x100,1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "AcquireQuantumMemory(uVar21 + 0x100,1)" (identifier "AcquireQuantumMemory") (argument_list "(uVar21 + 0x100,1)" (( "(") (binary_expression "uVar21 + 0x100" (identifier "uVar21") (+ "+") (number_literal "0x100")) (, ",") (number_literal "1") () ")"))))) (, ",") (binary_expression "local_7c == (char *)0x0" (identifier "local_7c") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\nLAB_0026128c:\n        CloseBlob(piVar29);\n        iVar14 = 0;\n        break;\n      }" ({ "{") (expression_statement "DestroyQuantizeInfo(piVar15);" (call_expression "DestroyQuantizeInfo(piVar15)" (identifier "DestroyQuantizeInfo") (argument_list "(piVar15)" (( "(") (identifier "piVar15") () ")"))) (; ";")) (expression_statement "ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);" (call_expression "ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6)" (identifier "ThrowMagickException") (argument_list "(param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6)" (( "(") (identifier "param_3") (, ",") (string_literal ""coders/palm.c"" (" """) (string_content "coders/palm.c") (" """)) (, ",") (string_literal ""WritePALMImage"" (" """) (string_content "WritePALMImage") (" """)) (, ",") (number_literal "0x376") (, ",") (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 "piVar15 = (int *)param_1[3];" (assignment_expression "piVar15 = (int *)param_1[3]" (identifier "piVar15") (= "=") (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") (] "]")))) (; ";")) (while_statement "while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }" (while "while") (parenthesized_expression "(piVar9 = param_2, piVar15 != (int *)0x0)" (( "(") (comma_expression "piVar9 = param_2, piVar15 != (int *)0x0" (assignment_expression "piVar9 = param_2" (identifier "piVar9") (= "=") (identifier "param_2")) (, ",") (binary_expression "piVar15 != (int *)0x0" (identifier "piVar15") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }" ({ "{") (expression_statement "piVar15 = (int *)piVar9[0xccf];" (assignment_expression "piVar15 = (int *)piVar9[0xccf]" (identifier "piVar15") (= "=") (cast_expression "(int *)piVar9[0xccf]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar9[0xccf]" (identifier "piVar9") ([ "[") (number_literal "0xccf") (] "]")))) (; ";")) (expression_statement "param_2 = piVar15;" (assignment_expression "param_2 = piVar15" (identifier "param_2") (= "=") (identifier "piVar15")) (; ";")) (expression_statement "piVar29 = piVar9;" (assignment_expression "piVar29 = piVar9" (identifier "piVar29") (= "=") (identifier "piVar9")) (; ";")) (} "}"))) (labeled_statement "LAB_0026128c:\n        CloseBlob(piVar29);" (statement_identifier "LAB_0026128c") (: ":") (expression_statement "CloseBlob(piVar29);" (call_expression "CloseBlob(piVar29)" (identifier "CloseBlob") (argument_list "(piVar29)" (( "(") (identifier "piVar29") () ")"))) (; ";"))) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" (identifier "iVar14") (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);" (assignment_expression "pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1)" (identifier "pcVar18") (= "=") (cast_expression "(char *)AcquireQuantumMemory(uVar21 + 0x100,1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "AcquireQuantumMemory(uVar21 + 0x100,1)" (identifier "AcquireQuantumMemory") (argument_list "(uVar21 + 0x100,1)" (( "(") (binary_expression "uVar21 + 0x100" (identifier "uVar21") (+ "+") (number_literal "0x100")) (, ",") (number_literal "1") () ")"))))) (; ";")) (if_statement "if (pcVar18 == (char *)0x0) {\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }" (if "if") (parenthesized_expression "(pcVar18 == (char *)0x0)" (( "(") (binary_expression "pcVar18 == (char *)0x0" (identifier "pcVar18") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }\n        DestroyQuantizeInfo(piVar15);\n        ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);\n        piVar15 = (int *)param_1[3];\n        while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }\n        goto LAB_0026128c;\n      }" ({ "{") (if_statement "if (local_7c != (char *)0x0) {\n          RelinquishMagickMemory(local_7c);\n        }" (if "if") (parenthesized_expression "(local_7c != (char *)0x0)" (( "(") (binary_expression "local_7c != (char *)0x0" (identifier "local_7c") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          RelinquishMagickMemory(local_7c);\n        }" ({ "{") (expression_statement "RelinquishMagickMemory(local_7c);" (call_expression "RelinquishMagickMemory(local_7c)" (identifier "RelinquishMagickMemory") (argument_list "(local_7c)" (( "(") (identifier "local_7c") () ")"))) (; ";")) (} "}"))) (expression_statement "DestroyQuantizeInfo(piVar15);" (call_expression "DestroyQuantizeInfo(piVar15)" (identifier "DestroyQuantizeInfo") (argument_list "(piVar15)" (( "(") (identifier "piVar15") () ")"))) (; ";")) (expression_statement "ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6);" (call_expression "ThrowMagickException\n                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6)" (identifier "ThrowMagickException") (argument_list "(param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",\n                   "`%s\'",param_2 + 0xc6)" (( "(") (identifier "param_3") (, ",") (string_literal ""coders/palm.c"" (" """) (string_content "coders/palm.c") (" """)) (, ",") (string_literal ""WritePALMImage"" (" """) (string_content "WritePALMImage") (" """)) (, ",") (number_literal "0x380") (, ",") (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 "piVar15 = (int *)param_1[3];" (assignment_expression "piVar15 = (int *)param_1[3]" (identifier "piVar15") (= "=") (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") (] "]")))) (; ";")) (while_statement "while (piVar9 = param_2, piVar15 != (int *)0x0) {\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }" (while "while") (parenthesized_expression "(piVar9 = param_2, piVar15 != (int *)0x0)" (( "(") (comma_expression "piVar9 = param_2, piVar15 != (int *)0x0" (assignment_expression "piVar9 = param_2" (identifier "piVar9") (= "=") (identifier "param_2")) (, ",") (binary_expression "piVar15 != (int *)0x0" (identifier "piVar15") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n          piVar15 = (int *)piVar9[0xccf];\n          param_2 = piVar15;\n          piVar29 = piVar9;\n        }" ({ "{") (expression_statement "piVar15 = (int *)piVar9[0xccf];" (assignment_expression "piVar15 = (int *)piVar9[0xccf]" (identifier "piVar15") (= "=") (cast_expression "(int *)piVar9[0xccf]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar9[0xccf]" (identifier "piVar9") ([ "[") (number_literal "0xccf") (] "]")))) (; ";")) (expression_statement "param_2 = piVar15;" (assignment_expression "param_2 = piVar15" (identifier "param_2") (= "=") (identifier "piVar15")) (; ";")) (expression_statement "piVar29 = piVar9;" (assignment_expression "piVar29 = piVar9" (identifier "piVar29") (= "=") (identifier "piVar9")) (; ";")) (} "}"))) (goto_statement "goto LAB_0026128c;" (goto "goto") (statement_identifier "LAB_0026128c") (; ";")) (} "}"))) (if_statement "if (0 < param_2[7]) {\n        local_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\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_b4 = (byte)local_a0;\n        iVar20 = 0;\n        do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);\n      }" ({ "{") (expression_statement "local_b4 = (byte)local_a0;" (assignment_expression "local_b4 = (byte)local_a0" (identifier "local_b4") (= "=") (cast_expression "(byte)local_a0" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_a0"))) (; ";")) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" (identifier "iVar20") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        } while (iVar20 < param_2[7]);" (do "do") (compound_statement "{\n          memset(pcVar18,0,uVar21);\n          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);\n          if (iVar19 == 0) break;\n          local_ac = param_2[6];\n          if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }\n          iVar20 = iVar20 + 1;\n        }" ({ "{") (expression_statement "memset(pcVar18,0,uVar21);" (call_expression "memset(pcVar18,0,uVar21)" (identifier "memset") (argument_list "(pcVar18,0,uVar21)" (( "(") (identifier "pcVar18") (, ",") (number_literal "0") (, ",") (identifier "uVar21") () ")"))) (; ";")) (expression_statement "iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);" (assignment_expression "iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3)" (identifier "iVar19") (= "=") (call_expression "GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3)" (identifier "GetVirtualPixels") (argument_list "(param_2,0,iVar20,param_2[6],1,param_3)" (( "(") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "iVar20") (, ",") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (, ",") (number_literal "1") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar19 == 0) break;" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_ac = param_2[6];" (assignment_expression "local_ac = param_2[6]" (identifier "local_ac") (= "=") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if (local_a0 == 0x10) {\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }\n          else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }" (if "if") (parenthesized_expression "(local_a0 == 0x10)" (( "(") (binary_expression "local_a0 == 0x10" (identifier "local_a0") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n            if ((int)local_ac < 1) goto LAB_0026097b;\n            local_b8 = (char *)0x0;\n            do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);\n            iVar19 = *param_1;\n            if (iVar19 != 0x13) goto LAB_0026098a;\nLAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }\n          }" ({ "{") (if_statement "if ((int)local_ac < 1) goto LAB_0026097b;" (if "if") (parenthesized_expression "((int)local_ac < 1)" (( "(") (binary_expression "(int)local_ac < 1" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_0026097b;" (goto "goto") (statement_identifier "LAB_0026097b") (; ";"))) (expression_statement "local_b8 = (char *)0x0;" (assignment_expression "local_b8 = (char *)0x0" (identifier "local_b8") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            } while ((int)local_b8 < param_2[6]);" (do "do") (compound_statement "{\n              iVar25 = param_2[0xaa];\n              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);\n              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);\n              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);\n              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;\n              if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }\n              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);\n              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;\n              local_b8 = (char *)((int)local_b8 + 1);\n              iVar19 = iVar19 + param_2[0xa6] * 8;\n            }" ({ "{") (expression_statement "iVar25 = param_2[0xaa];" (assignment_expression "iVar25 = param_2[0xaa]" (identifier "iVar25") (= "=") (subscript_expression "param_2[0xaa]" (identifier "param_2") ([ "[") (number_literal "0xaa") (] "]"))) (; ";")) (expression_statement "dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);" (assignment_expression "dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(iVar19 + *(int *)(iVar25 + 8) * 8)" (* "*") (cast_expression "(double *)(iVar19 + *(int *)(iVar25 + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + *(int *)(iVar25 + 8) * 8)" (( "(") (binary_expression "iVar19 + *(int *)(iVar25 + 8) * 8" (identifier "iVar19") (+ "+") (binary_expression "*(int *)(iVar25 + 8) * 8" (pointer_expression "*(int *)(iVar25 + 8)" (* "*") (cast_expression "(int *)(iVar25 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 8)" (( "(") (binary_expression "iVar25 + 8" (identifier "iVar25") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);" (assignment_expression "dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8)" (identifier "dVar4") (= "=") (pointer_expression "*(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8)" (* "*") (cast_expression "(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + *(int *)(iVar25 + 0x14) * 8)" (( "(") (binary_expression "iVar19 + *(int *)(iVar25 + 0x14) * 8" (identifier "iVar19") (+ "+") (binary_expression "*(int *)(iVar25 + 0x14) * 8" (pointer_expression "*(int *)(iVar25 + 0x14)" (* "*") (cast_expression "(int *)(iVar25 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0x14)" (( "(") (binary_expression "iVar25 + 0x14" (identifier "iVar25") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);" (assignment_expression "dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8)" (* "*") (cast_expression "(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + *(int *)(iVar25 + 0x20) * 8)" (( "(") (binary_expression "iVar19 + *(int *)(iVar25 + 0x20) * 8" (identifier "iVar19") (+ "+") (binary_expression "*(int *)(iVar25 + 0x20) * 8" (pointer_expression "*(int *)(iVar25 + 0x20)" (* "*") (cast_expression "(int *)(iVar25 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0x20)" (( "(") (binary_expression "iVar25 + 0x20" (identifier "iVar25") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;" (assignment_expression "uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff" (identifier "uVar17") (= "=") (binary_expression "(((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |\n                       ((int)ROUND(dVar3) * 0x1f) / 0xffff" (binary_expression "(((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |\n                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800" (binary_expression "(((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20" (parenthesized_expression "(((int)ROUND(dVar4) * 0x3f) / 0xffff)" (( "(") (binary_expression "((int)ROUND(dVar4) * 0x3f) / 0xffff" (parenthesized_expression "((int)ROUND(dVar4) * 0x3f)" (( "(") (binary_expression "(int)ROUND(dVar4) * 0x3f" (cast_expression "(int)ROUND(dVar4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(dVar4)" (identifier "ROUND") (argument_list "(dVar4)" (( "(") (identifier "dVar4") () ")")))) (* "*") (number_literal "0x3f")) () ")")) (/ "/") (number_literal "0xffff")) () ")")) (* "*") (number_literal "0x20")) (| "|") (binary_expression "(((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800" (parenthesized_expression "(((int)ROUND(dVar2) * 0x1f) / 0xffff)" (( "(") (binary_expression "((int)ROUND(dVar2) * 0x1f) / 0xffff" (parenthesized_expression "((int)ROUND(dVar2) * 0x1f)" (( "(") (binary_expression "(int)ROUND(dVar2) * 0x1f" (cast_expression "(int)ROUND(dVar2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(dVar2)" (identifier "ROUND") (argument_list "(dVar2)" (( "(") (identifier "dVar2") () ")")))) (* "*") (number_literal "0x1f")) () ")")) (/ "/") (number_literal "0xffff")) () ")")) (* "*") (number_literal "0x800"))) (| "|") (binary_expression "((int)ROUND(dVar3) * 0x1f) / 0xffff" (parenthesized_expression "((int)ROUND(dVar3) * 0x1f)" (( "(") (binary_expression "(int)ROUND(dVar3) * 0x1f" (cast_expression "(int)ROUND(dVar3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(dVar3)" (identifier "ROUND") (argument_list "(dVar3)" (( "(") (identifier "dVar3") () ")")))) (* "*") (number_literal "0x1f")) () ")")) (/ "/") (number_literal "0xffff")))) (; ";")) (if_statement "if ((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }" (if "if") (parenthesized_expression "((*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0))" (( "(") (binary_expression "(*(int *)(iVar25 + 0x34) != 0) &&\n                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)" (parenthesized_expression "(*(int *)(iVar25 + 0x34) != 0)" (( "(") (binary_expression "*(int *)(iVar25 + 0x34) != 0" (pointer_expression "*(int *)(iVar25 + 0x34)" (* "*") (cast_expression "(int *)(iVar25 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0x34)" (( "(") (binary_expression "iVar25 + 0x34" (identifier "iVar25") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)" (( "(") (binary_expression "*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0" (pointer_expression "*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8)" (* "*") (cast_expression "(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + *(int *)(iVar25 + 0x38) * 8)" (( "(") (binary_expression "iVar19 + *(int *)(iVar25 + 0x38) * 8" (identifier "iVar19") (+ "+") (binary_expression "*(int *)(iVar25 + 0x38) * 8" (pointer_expression "*(int *)(iVar25 + 0x38)" (* "*") (cast_expression "(int *)(iVar25 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0x38)" (( "(") (binary_expression "iVar25 + 0x38" (identifier "iVar25") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (== "==") (number_literal "0.0")) () ")"))) () ")")) (compound_statement "{\n                local_48 = local_48 | 0x2000;\n                local_94 = dVar2;\n                local_8c = dVar3;\n                local_84 = dVar4;\n              }" ({ "{") (expression_statement "local_48 = local_48 | 0x2000;" (assignment_expression "local_48 = local_48 | 0x2000" (identifier "local_48") (= "=") (binary_expression "local_48 | 0x2000" (identifier "local_48") (| "|") (number_literal "0x2000"))) (; ";")) (expression_statement "local_94 = dVar2;" (assignment_expression "local_94 = dVar2" (identifier "local_94") (= "=") (identifier "dVar2")) (; ";")) (expression_statement "local_8c = dVar3;" (assignment_expression "local_8c = dVar3" (identifier "local_8c") (= "=") (identifier "dVar3")) (; ";")) (expression_statement "local_84 = dVar4;" (assignment_expression "local_84 = dVar4" (identifier "local_84") (= "=") (identifier "dVar4")) (; ";")) (} "}"))) (expression_statement "pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);" (assignment_expression "pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8)" (subscript_expression "pcVar18[(int)local_b8 * 2]" (identifier "pcVar18") ([ "[") (binary_expression "(int)local_b8 * 2" (cast_expression "(int)local_b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b8")) (* "*") (number_literal "2")) (] "]")) (= "=") (cast_expression "(char)(uVar17 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(uVar17 >> 8)" (( "(") (binary_expression "uVar17 >> 8" (identifier "uVar17") (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;" (assignment_expression "pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17" (subscript_expression "pcVar18[(int)local_b8 * 2 + 1]" (identifier "pcVar18") ([ "[") (binary_expression "(int)local_b8 * 2 + 1" (binary_expression "(int)local_b8 * 2" (cast_expression "(int)local_b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b8")) (* "*") (number_literal "2")) (+ "+") (number_literal "1")) (] "]")) (= "=") (cast_expression "(char)uVar17" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar17"))) (; ";")) (expression_statement "local_b8 = (char *)((int)local_b8 + 1);" (assignment_expression "local_b8 = (char *)((int)local_b8 + 1)" (identifier "local_b8") (= "=") (cast_expression "(char *)((int)local_b8 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b8 + 1)" (( "(") (binary_expression "(int)local_b8 + 1" (cast_expression "(int)local_b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b8")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar19 = iVar19 + param_2[0xa6] * 8;" (assignment_expression "iVar19 = iVar19 + param_2[0xa6] * 8" (identifier "iVar19") (= "=") (binary_expression "iVar19 + param_2[0xa6] * 8" (identifier "iVar19") (+ "+") (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" (identifier "param_2") ([ "[") (number_literal "0xa6") (] "]")) (* "*") (number_literal "8")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)local_b8 < param_2[6])" (( "(") (binary_expression "(int)local_b8 < param_2[6]" (cast_expression "(int)local_b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b8")) (< "<") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) () ")")) (; ";")) (expression_statement "iVar19 = *param_1;" (assignment_expression "iVar19 = *param_1" (identifier "iVar19") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (iVar19 != 0x13) goto LAB_0026098a;" (if "if") (parenthesized_expression "(iVar19 != 0x13)" (( "(") (binary_expression "iVar19 != 0x13" (identifier "iVar19") (!= "!=") (number_literal "0x13")) () ")")) (goto_statement "goto LAB_0026098a;" (goto "goto") (statement_identifier "LAB_0026098a") (; ";"))) (labeled_statement "LAB_00260d43:\n            if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }" (statement_identifier "LAB_00260d43") (: ":") (if_statement "if (0 < (int)uVar21) {\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }" (if "if") (parenthesized_expression "(0 < (int)uVar21)" (( "(") (binary_expression "0 < (int)uVar21" (number_literal "0") (< "<") (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21"))) () ")")) (compound_statement "{\n              iVar19 = 0;\n              do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);\n            }" ({ "{") (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" (identifier "iVar19") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              } while (iVar25 < (int)uVar21);" (do "do") (compound_statement "{\n                cVar27 = pcVar18[iVar19];\n                iVar25 = iVar19 + 1;\n                if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }\n                WriteBlobByte(param_2,uVar17);\n                WriteBlobByte(param_2,cVar27);\n                iVar19 = iVar25;\n              }" ({ "{") (expression_statement "cVar27 = pcVar18[iVar19];" (assignment_expression "cVar27 = pcVar18[iVar19]" (identifier "cVar27") (= "=") (subscript_expression "pcVar18[iVar19]" (identifier "pcVar18") ([ "[") (identifier "iVar19") (] "]"))) (; ";")) (expression_statement "iVar25 = iVar19 + 1;" (assignment_expression "iVar25 = iVar19 + 1" (identifier "iVar25") (= "=") (binary_expression "iVar19 + 1" (identifier "iVar19") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (cVar27 == pcVar18[iVar19 + 1]) {\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }\n                else {\n                  uVar17 = 1;\n                }" (if "if") (parenthesized_expression "(cVar27 == pcVar18[iVar19 + 1])" (( "(") (binary_expression "cVar27 == pcVar18[iVar19 + 1]" (identifier "cVar27") (== "==") (subscript_expression "pcVar18[iVar19 + 1]" (identifier "pcVar18") ([ "[") (binary_expression "iVar19 + 1" (identifier "iVar19") (+ "+") (number_literal "1")) (] "]"))) () ")")) (compound_statement "{\n                  if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }\n                  uVar17 = 1;\n                  do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);\n                }" ({ "{") (if_statement "if ((int)uVar21 <= iVar25) {\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }" (if "if") (parenthesized_expression "((int)uVar21 <= iVar25)" (( "(") (binary_expression "(int)uVar21 <= iVar25" (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21")) (<= "<=") (identifier "iVar25")) () ")")) (compound_statement "{\n                    WriteBlobByte(param_2,1);\n                    WriteBlobByte(param_2,cVar27);\n                    break;\n                  }" ({ "{") (expression_statement "WriteBlobByte(param_2,1);" (call_expression "WriteBlobByte(param_2,1)" (identifier "WriteBlobByte") (argument_list "(param_2,1)" (( "(") (identifier "param_2") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "WriteBlobByte(param_2,cVar27);" (call_expression "WriteBlobByte(param_2,cVar27)" (identifier "WriteBlobByte") (argument_list "(param_2,cVar27)" (( "(") (identifier "param_2") (, ",") (identifier "cVar27") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" (identifier "uVar17") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  } while (iVar25 < (int)uVar21);" (do "do") (compound_statement "{\n                    uVar17 = uVar17 + 1;\n                    iVar25 = iVar19 + uVar17;\n                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;\n                  }" ({ "{") (expression_statement "uVar17 = uVar17 + 1;" (assignment_expression "uVar17 = uVar17 + 1" (identifier "uVar17") (= "=") (binary_expression "uVar17 + 1" (identifier "uVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar25 = iVar19 + uVar17;" (assignment_expression "iVar25 = iVar19 + uVar17" (identifier "iVar25") (= "=") (binary_expression "iVar19 + uVar17" (identifier "iVar19") (+ "+") (identifier "uVar17"))) (; ";")) (if_statement "if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;" (if "if") (parenthesized_expression "(((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17))" (( "(") (binary_expression "((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)" (parenthesized_expression "((pcVar18 + iVar19)[uVar17] != cVar27)" (( "(") (binary_expression "(pcVar18 + iVar19)[uVar17] != cVar27" (subscript_expression "(pcVar18 + iVar19)[uVar17]" (parenthesized_expression "(pcVar18 + iVar19)" (( "(") (binary_expression "pcVar18 + iVar19" (identifier "pcVar18") (+ "+") (identifier "iVar19")) () ")")) ([ "[") (identifier "uVar17") (] "]")) (!= "!=") (identifier "cVar27")) () ")")) (|| "||") (parenthesized_expression "(0xfe < uVar17)" (( "(") (binary_expression "0xfe < uVar17" (number_literal "0xfe") (< "<") (identifier "uVar17")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(iVar25 < (int)uVar21)" (( "(") (binary_expression "iVar25 < (int)uVar21" (identifier "iVar25") (< "<") (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21"))) () ")")) (; ";")) (} "}")) (else_clause "else {\n                  uVar17 = 1;\n                }" (else "else") (compound_statement "{\n                  uVar17 = 1;\n                }" ({ "{") (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" (identifier "uVar17") (= "=") (number_literal "1")) (; ";")) (} "}")))) (expression_statement "WriteBlobByte(param_2,uVar17);" (call_expression "WriteBlobByte(param_2,uVar17)" (identifier "WriteBlobByte") (argument_list "(param_2,uVar17)" (( "(") (identifier "param_2") (, ",") (identifier "uVar17") () ")"))) (; ";")) (expression_statement "WriteBlobByte(param_2,cVar27);" (call_expression "WriteBlobByte(param_2,cVar27)" (identifier "WriteBlobByte") (argument_list "(param_2,cVar27)" (( "(") (identifier "param_2") (, ",") (identifier "cVar27") () ")"))) (; ";")) (expression_statement "iVar19 = iVar25;" (assignment_expression "iVar19 = iVar25" (identifier "iVar19") (= "=") (identifier "iVar25")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar25 < (int)uVar21)" (( "(") (binary_expression "iVar25 < (int)uVar21" (identifier "iVar25") (< "<") (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21"))) () ")")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }" (else "else") (compound_statement "{\n            uVar17 = (uint)(byte)(8 - local_45);\n            local_b8 = pcVar18;\n            if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }\nLAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }\nLAB_0026097b:\n            iVar19 = *param_1;\n            if (iVar19 == 0x13) goto LAB_00260d43;\nLAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }\n          }" ({ "{") (expression_statement "uVar17 = (uint)(byte)(8 - local_45);" (assignment_expression "uVar17 = (uint)(byte)(8 - local_45)" (identifier "uVar17") (= "=") (call_expression "(uint)(byte)(8 - local_45)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(8 - local_45)" (( "(") (binary_expression "8 - local_45" (number_literal "8") (- "-") (identifier "local_45")) () ")")))) (; ";")) (expression_statement "local_b8 = pcVar18;" (assignment_expression "local_b8 = pcVar18" (identifier "local_b8") (= "=") (identifier "pcVar18")) (; ";")) (if_statement "if ((int)local_ac < 1) {\n              cVar27 = '\0';\n            }\n            else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }" (if "if") (parenthesized_expression "((int)local_ac < 1)" (( "(") (binary_expression "(int)local_ac < 1" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n              cVar27 = '\0';\n            }" ({ "{") (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" (identifier "cVar27") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")) (else_clause "else if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }" (else "else") (if_statement "if (local_a0 < 8) {\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }\n            else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }" (if "if") (parenthesized_expression "(local_a0 < 8)" (( "(") (binary_expression "local_a0 < 8" (identifier "local_a0") (< "<") (number_literal "8")) () ")")) (compound_statement "{\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n            }" ({ "{") (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" (identifier "uVar28") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" (identifier "iVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar23 = uVar17;" (assignment_expression "uVar23 = uVar17" (identifier "uVar23") (= "=") (identifier "uVar17")) (; ";")) (do_statement "do {\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);" (do "do") (compound_statement "{\n                while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                local_ac = param_2[6];\n                uVar23 = uVar23 - local_a0;\n              }" ({ "{") (while_statement "while( true ) {\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }\n                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);\n                  if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }\n                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_b8 = cVar27;\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  local_ac = param_2[6];\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_b8 = local_b8 + 1;\n                }" ({ "{") (if_statement "if (*(int *)(param_2[0xaa] + 0x40) == 0) {\n                    dVar2 = 0.0;\n                  }\n                  else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }" (if "if") (parenthesized_expression "(*(int *)(param_2[0xaa] + 0x40) == 0)" (( "(") (binary_expression "*(int *)(param_2[0xaa] + 0x40) == 0" (pointer_expression "*(int *)(param_2[0xaa] + 0x40)" (* "*") (cast_expression "(int *)(param_2[0xaa] + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[0xaa] + 0x40)" (( "(") (binary_expression "param_2[0xaa] + 0x40" (subscript_expression "param_2[0xaa]" (identifier "param_2") ([ "[") (number_literal "0xaa") (] "]")) (+ "+") (number_literal "0x40")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    dVar2 = 0.0;\n                  }" ({ "{") (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" (identifier "dVar2") (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else {\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }" (else "else") (compound_statement "{\n                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);\n                  }" ({ "{") (expression_statement "dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);" (assignment_expression "dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8)" (* "*") (cast_expression "(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8)" (( "(") (binary_expression "iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8" (identifier "iVar19") (+ "+") (binary_expression "*(int *)(param_2[0xaa] + 0x44) * 8" (pointer_expression "*(int *)(param_2[0xaa] + 0x44)" (* "*") (cast_expression "(int *)(param_2[0xaa] + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[0xaa] + 0x44)" (( "(") (binary_expression "param_2[0xaa] + 0x44" (subscript_expression "param_2[0xaa]" (identifier "param_2") ([ "[") (number_literal "0xaa") (] "]")) (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}")))) (expression_statement "dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);" (assignment_expression "dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1)" (identifier "dVar2") (= "=") (binary_expression "dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1)" (identifier "dVar2") (* "*") (cast_expression "(double)((1 << (local_b4 & 0x1f)) + -1)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "((1 << (local_b4 & 0x1f)) + -1)" (( "(") (binary_expression "(1 << (local_b4 & 0x1f)) + -1" (parenthesized_expression "(1 << (local_b4 & 0x1f))" (( "(") (binary_expression "1 << (local_b4 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(local_b4 & 0x1f)" (( "(") (binary_expression "local_b4 & 0x1f" (identifier "local_b4") (& "&") (number_literal "0x1f")) () ")"))) () ")")) (+ "+") (number_literal "-1")) () ")"))))) (; ";")) (if_statement "if (1 < param_2[9] - 1U) {\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }" (if "if") (parenthesized_expression "(1 < param_2[9] - 1U)" (( "(") (binary_expression "1 < param_2[9] - 1U" (number_literal "1") (< "<") (binary_expression "param_2[9] - 1U" (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]")) (- "-") (number_literal "1U"))) () ")")) (compound_statement "{\n                    local_cc = (ulonglong)(param_2[9] - 1U);\n                    dVar2 = dVar2 / (double)local_cc;\n                  }" ({ "{") (expression_statement "local_cc = (ulonglong)(param_2[9] - 1U);" (assignment_expression "local_cc = (ulonglong)(param_2[9] - 1U)" (identifier "local_cc") (= "=") (call_expression "(ulonglong)(param_2[9] - 1U)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(param_2[9] - 1U)" (( "(") (binary_expression "param_2[9] - 1U" (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]")) (- "-") (number_literal "1U")) () ")")))) (; ";")) (expression_statement "dVar2 = dVar2 / (double)local_cc;" (assignment_expression "dVar2 = dVar2 / (double)local_cc" (identifier "dVar2") (= "=") (binary_expression "dVar2 / (double)local_cc" (identifier "dVar2") (/ "/") (cast_expression "(double)local_cc" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_cc")))) (; ";")) (} "}"))) (expression_statement "uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);" (assignment_expression "uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f)" (identifier "uVar28") (= "=") (binary_expression "uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f)" (identifier "uVar28") (| "|") (binary_expression "(uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f)" (cast_expression "(uint)(byte)(short)ROUND(dVar2)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)(short)ROUND(dVar2)" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(short)ROUND(dVar2)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(dVar2)" (identifier "ROUND") (argument_list "(dVar2)" (( "(") (identifier "dVar2") () ")")))))) (<< "<<") (parenthesized_expression "((byte)uVar23 & 0x1f)" (( "(") (binary_expression "(byte)uVar23 & 0x1f" (cast_expression "(byte)uVar23" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar23")) (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (expression_statement "cVar27 = (char)uVar28;" (assignment_expression "cVar27 = (char)uVar28" (identifier "cVar27") (= "=") (cast_expression "(char)uVar28" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar28"))) (; ";")) (if_statement "if (uVar23 != 0) break;" (if "if") (parenthesized_expression "(uVar23 != 0)" (( "(") (binary_expression "uVar23 != 0" (identifier "uVar23") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" (identifier "iVar25") (= "=") (binary_expression "iVar25 + 1" (identifier "iVar25") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*local_b8 = cVar27;" (assignment_expression "*local_b8 = cVar27" (pointer_expression "*local_b8" (* "*") (identifier "local_b8")) (= "=") (identifier "cVar27")) (; ";")) (expression_statement "iVar19 = iVar19 + param_2[0xa6] * 8;" (assignment_expression "iVar19 = iVar19 + param_2[0xa6] * 8" (identifier "iVar19") (= "=") (binary_expression "iVar19 + param_2[0xa6] * 8" (identifier "iVar19") (+ "+") (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" (identifier "param_2") ([ "[") (number_literal "0xa6") (] "]")) (* "*") (number_literal "8")))) (; ";")) (expression_statement "local_ac = param_2[6];" (assignment_expression "local_ac = param_2[6]" (identifier "local_ac") (= "=") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }" (if "if") (parenthesized_expression "((int)local_ac <= iVar25)" (( "(") (binary_expression "(int)local_ac <= iVar25" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (<= "<=") (identifier "iVar25")) () ")")) (compound_statement "{\n                    cVar27 = '\0';\n                    local_b8 = local_b8 + 1;\n                    goto LAB_0026095c;\n                  }" ({ "{") (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" (identifier "cVar27") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_b8 = local_b8 + 1;" (assignment_expression "local_b8 = local_b8 + 1" (identifier "local_b8") (= "=") (binary_expression "local_b8 + 1" (identifier "local_b8") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_0026095c;" (goto "goto") (statement_identifier "LAB_0026095c") (; ";")) (} "}"))) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" (identifier "uVar28") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar23 = uVar17;" (assignment_expression "uVar23 = uVar17" (identifier "uVar23") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "local_b8 = local_b8 + 1;" (assignment_expression "local_b8 = local_b8 + 1" (identifier "local_b8") (= "=") (binary_expression "local_b8 + 1" (identifier "local_b8") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" (identifier "iVar25") (= "=") (binary_expression "iVar25 + 1" (identifier "iVar25") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar19 = iVar19 + param_2[0xa6] * 8;" (assignment_expression "iVar19 = iVar19 + param_2[0xa6] * 8" (identifier "iVar19") (= "=") (binary_expression "iVar19 + param_2[0xa6] * 8" (identifier "iVar19") (+ "+") (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" (identifier "param_2") ([ "[") (number_literal "0xa6") (] "]")) (* "*") (number_literal "8")))) (; ";")) (expression_statement "local_ac = param_2[6];" (assignment_expression "local_ac = param_2[6]" (identifier "local_ac") (= "=") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "uVar23 = uVar23 - local_a0;" (assignment_expression "uVar23 = uVar23 - local_a0" (identifier "uVar23") (= "=") (binary_expression "uVar23 - local_a0" (identifier "uVar23") (- "-") (identifier "local_a0"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar25 < (int)local_ac)" (( "(") (binary_expression "iVar25 < (int)local_ac" (identifier "iVar25") (< "<") (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac"))) () ")")) (; ";")) (} "}")) (else_clause "else {\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }" (else "else") (compound_statement "{\n              local_b8 = (char *)param_2[0xaa];\n              uVar28 = 0;\n              iVar25 = 0;\n              uVar23 = uVar17;\n              local_9c = pcVar18;\n              do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);\n              local_b8 = local_9c;\n            }" ({ "{") (expression_statement "local_b8 = (char *)param_2[0xaa];" (assignment_expression "local_b8 = (char *)param_2[0xaa]" (identifier "local_b8") (= "=") (cast_expression "(char *)param_2[0xaa]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[0xaa]" (identifier "param_2") ([ "[") (number_literal "0xaa") (] "]")))) (; ";")) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" (identifier "uVar28") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" (identifier "iVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar23 = uVar17;" (assignment_expression "uVar23 = uVar17" (identifier "uVar23") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "local_9c = pcVar18;" (assignment_expression "local_9c = pcVar18" (identifier "local_9c") (= "=") (identifier "pcVar18")) (; ";")) (do_statement "do {\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              } while (iVar25 < (int)local_ac);" (do "do") (compound_statement "{\n                while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }\n                iVar25 = iVar25 + 1;\n                iVar19 = iVar19 + param_2[0xa6] * 8;\n                uVar23 = uVar23 - local_a0;\n              }" ({ "{") (while_statement "while( true ) {\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                  if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }\n                  cVar27 = (char)uVar28;\n                  if (uVar23 != 0) break;\n                  iVar25 = iVar25 + 1;\n                  *local_9c = cVar27;\n                  local_ac = param_2[6];\n                  iVar19 = iVar19 + param_2[0xa6] * 8;\n                  if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }\n                  local_b8 = (char *)param_2[0xaa];\n                  uVar28 = 0;\n                  uVar23 = uVar17;\n                  local_9c = local_9c + 1;\n                }" ({ "{") (if_statement "if (*(int *)((int)local_b8 + 0x40) != 0) {\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }" (if "if") (parenthesized_expression "(*(int *)((int)local_b8 + 0x40) != 0)" (( "(") (binary_expression "*(int *)((int)local_b8 + 0x40) != 0" (pointer_expression "*(int *)((int)local_b8 + 0x40)" (* "*") (cast_expression "(int *)((int)local_b8 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b8 + 0x40)" (( "(") (binary_expression "(int)local_b8 + 0x40" (cast_expression "(int)local_b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b8")) (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);\n                  }" ({ "{") (expression_statement "uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f);" (assignment_expression "uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f)" (identifier "uVar28") (= "=") (binary_expression "uVar28 | (uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f)" (identifier "uVar28") (| "|") (binary_expression "(uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)) <<\n                                      ((byte)uVar23 & 0x1f)" (cast_expression "(uint)(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8))" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(short)ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8))" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8))" (identifier "ROUND") (argument_list "(*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8))" (( "(") (pointer_expression "*(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)" (* "*") (cast_expression "(double *)\n                                                                (iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8)" (( "(") (binary_expression "iVar19 + *(int *)((int)local_b8 +\n                                                                                  0x44) * 8" (identifier "iVar19") (+ "+") (binary_expression "*(int *)((int)local_b8 +\n                                                                                  0x44) * 8" (pointer_expression "*(int *)((int)local_b8 +\n                                                                                  0x44)" (* "*") (cast_expression "(int *)((int)local_b8 +\n                                                                                  0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b8 +\n                                                                                  0x44)" (( "(") (binary_expression "(int)local_b8 +\n                                                                                  0x44" (cast_expression "(int)local_b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b8")) (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "8"))) () ")")))) () ")")))))) (<< "<<") (parenthesized_expression "((byte)uVar23 & 0x1f)" (( "(") (binary_expression "(byte)uVar23 & 0x1f" (cast_expression "(byte)uVar23" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar23")) (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}"))) (expression_statement "cVar27 = (char)uVar28;" (assignment_expression "cVar27 = (char)uVar28" (identifier "cVar27") (= "=") (cast_expression "(char)uVar28" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar28"))) (; ";")) (if_statement "if (uVar23 != 0) break;" (if "if") (parenthesized_expression "(uVar23 != 0)" (( "(") (binary_expression "uVar23 != 0" (identifier "uVar23") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" (identifier "iVar25") (= "=") (binary_expression "iVar25 + 1" (identifier "iVar25") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*local_9c = cVar27;" (assignment_expression "*local_9c = cVar27" (pointer_expression "*local_9c" (* "*") (identifier "local_9c")) (= "=") (identifier "cVar27")) (; ";")) (expression_statement "local_ac = param_2[6];" (assignment_expression "local_ac = param_2[6]" (identifier "local_ac") (= "=") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "iVar19 = iVar19 + param_2[0xa6] * 8;" (assignment_expression "iVar19 = iVar19 + param_2[0xa6] * 8" (identifier "iVar19") (= "=") (binary_expression "iVar19 + param_2[0xa6] * 8" (identifier "iVar19") (+ "+") (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" (identifier "param_2") ([ "[") (number_literal "0xa6") (] "]")) (* "*") (number_literal "8")))) (; ";")) (if_statement "if ((int)local_ac <= iVar25) {\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }" (if "if") (parenthesized_expression "((int)local_ac <= iVar25)" (( "(") (binary_expression "(int)local_ac <= iVar25" (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac")) (<= "<=") (identifier "iVar25")) () ")")) (compound_statement "{\n                    cVar27 = '\0';\n                    local_b8 = local_9c + 1;\n                    goto LAB_0026095c;\n                  }" ({ "{") (expression_statement "cVar27 = '\0';" (assignment_expression "cVar27 = '\0'" (identifier "cVar27") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_b8 = local_9c + 1;" (assignment_expression "local_b8 = local_9c + 1" (identifier "local_b8") (= "=") (binary_expression "local_9c + 1" (identifier "local_9c") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_0026095c;" (goto "goto") (statement_identifier "LAB_0026095c") (; ";")) (} "}"))) (expression_statement "local_b8 = (char *)param_2[0xaa];" (assignment_expression "local_b8 = (char *)param_2[0xaa]" (identifier "local_b8") (= "=") (cast_expression "(char *)param_2[0xaa]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[0xaa]" (identifier "param_2") ([ "[") (number_literal "0xaa") (] "]")))) (; ";")) (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" (identifier "uVar28") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar23 = uVar17;" (assignment_expression "uVar23 = uVar17" (identifier "uVar23") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "local_9c = local_9c + 1;" (assignment_expression "local_9c = local_9c + 1" (identifier "local_9c") (= "=") (binary_expression "local_9c + 1" (identifier "local_9c") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" (identifier "iVar25") (= "=") (binary_expression "iVar25 + 1" (identifier "iVar25") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar19 = iVar19 + param_2[0xa6] * 8;" (assignment_expression "iVar19 = iVar19 + param_2[0xa6] * 8" (identifier "iVar19") (= "=") (binary_expression "iVar19 + param_2[0xa6] * 8" (identifier "iVar19") (+ "+") (binary_expression "param_2[0xa6] * 8" (subscript_expression "param_2[0xa6]" (identifier "param_2") ([ "[") (number_literal "0xa6") (] "]")) (* "*") (number_literal "8")))) (; ";")) (expression_statement "uVar23 = uVar23 - local_a0;" (assignment_expression "uVar23 = uVar23 - local_a0" (identifier "uVar23") (= "=") (binary_expression "uVar23 - local_a0" (identifier "uVar23") (- "-") (identifier "local_a0"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar25 < (int)local_ac)" (( "(") (binary_expression "iVar25 < (int)local_ac" (identifier "iVar25") (< "<") (cast_expression "(int)local_ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_ac"))) () ")")) (; ";")) (expression_statement "local_b8 = local_9c;" (assignment_expression "local_b8 = local_9c" (identifier "local_b8") (= "=") (identifier "local_9c")) (; ";")) (} "}")))))) (labeled_statement "LAB_0026095c:\n            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }" (statement_identifier "LAB_0026095c") (: ":") (if_statement "if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {\n              *local_b8 = cVar27;\n            }" (if "if") (parenthesized_expression "((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0)" (( "(") (binary_expression "(int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0" (cast_expression "(int)((ulonglong)local_ac % (8 / (ulonglong)local_a0))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)local_ac % (8 / (ulonglong)local_a0))" (( "(") (binary_expression "(ulonglong)local_ac % (8 / (ulonglong)local_a0)" (cast_expression "(ulonglong)local_ac" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "local_ac")) (% "%") (parenthesized_expression "(8 / (ulonglong)local_a0)" (( "(") (binary_expression "8 / (ulonglong)local_a0" (number_literal "8") (/ "/") (cast_expression "(ulonglong)local_a0" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "local_a0"))) () ")"))) () ")"))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              *local_b8 = cVar27;\n            }" ({ "{") (expression_statement "*local_b8 = cVar27;" (assignment_expression "*local_b8 = cVar27" (pointer_expression "*local_b8" (* "*") (identifier "local_b8")) (= "=") (identifier "cVar27")) (; ";")) (} "}")))) (labeled_statement "LAB_0026097b:\n            iVar19 = *param_1;" (statement_identifier "LAB_0026097b") (: ":") (expression_statement "iVar19 = *param_1;" (assignment_expression "iVar19 = *param_1" (identifier "iVar19") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";"))) (if_statement "if (iVar19 == 0x13) goto LAB_00260d43;" (if "if") (parenthesized_expression "(iVar19 == 0x13)" (( "(") (binary_expression "iVar19 == 0x13" (identifier "iVar19") (== "==") (number_literal "0x13")) () ")")) (goto_statement "goto LAB_00260d43;" (goto "goto") (statement_identifier "LAB_00260d43") (; ";"))) (labeled_statement "LAB_0026098a:\n            if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }" (statement_identifier "LAB_0026098a") (: ":") (if_statement "if (iVar19 == 7) {\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }\n            else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }" (if "if") (parenthesized_expression "(iVar19 == 7)" (( "(") (binary_expression "iVar19 == 7" (identifier "iVar19") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n              if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }\n              memcpy(local_7c,pcVar18,uVar21);\n            }" ({ "{") (if_statement "if (0 < (int)uVar21) {\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }" (if "if") (parenthesized_expression "(0 < (int)uVar21)" (( "(") (binary_expression "0 < (int)uVar21" (number_literal "0") (< "<") (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21"))) () ")")) (compound_statement "{\n                pcVar24 = pcVar18;\n                uVar17 = uVar21;\n                pcVar1 = local_7c;\n                do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);\n              }" ({ "{") (expression_statement "pcVar24 = pcVar18;" (assignment_expression "pcVar24 = pcVar18" (identifier "pcVar24") (= "=") (identifier "pcVar18")) (; ";")) (expression_statement "uVar17 = uVar21;" (assignment_expression "uVar17 = uVar21" (identifier "uVar17") (= "=") (identifier "uVar21")) (; ";")) (expression_statement "pcVar1 = local_7c;" (assignment_expression "pcVar1 = local_7c" (identifier "pcVar1") (= "=") (identifier "local_7c")) (; ";")) (do_statement "do {\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);" (do "do") (compound_statement "{\n                  uVar23 = 8;\n                  if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }\n                  if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                  uVar17 = uVar17 - 8;\n                  WriteBlobByte(param_2,bVar10);\n                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);\n                  pcVar1 = pcVar1 + 8;\n                  pcVar24 = pcVar24 + 8;\n                }" ({ "{") (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" (identifier "uVar23") (= "=") (number_literal "8")) (; ";")) (if_statement "if ((int)uVar17 < 9) {\n                    uVar23 = uVar17;\n                  }" (if "if") (parenthesized_expression "((int)uVar17 < 9)" (( "(") (binary_expression "(int)uVar17 < 9" (cast_expression "(int)uVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar17")) (< "<") (number_literal "9")) () ")")) (compound_statement "{\n                    uVar23 = uVar17;\n                  }" ({ "{") (expression_statement "uVar23 = uVar17;" (assignment_expression "uVar23 = uVar17" (identifier "uVar23") (= "=") (identifier "uVar17")) (; ";")) (} "}"))) (if_statement "if (iVar20 == 0) {\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }\n                  else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" (if "if") (parenthesized_expression "(iVar20 == 0)" (( "(") (binary_expression "iVar20 == 0" (identifier "iVar20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    local_28[0] = *pcVar24;\n                    if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                    local_78 = local_28 + uVar23;\n                  }" ({ "{") (expression_statement "local_28[0] = *pcVar24;" (assignment_expression "local_28[0] = *pcVar24" (subscript_expression "local_28[0]" (identifier "local_28") ([ "[") (number_literal "0") (] "]")) (= "=") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24"))) (; ";")) (if_statement "if (uVar17 == 1) {\n                      bVar10 = 0x80;\n                    }\n                    else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" (if "if") (parenthesized_expression "(uVar17 == 1)" (( "(") (binary_expression "uVar17 == 1" (identifier "uVar17") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                      bVar10 = 0x80;\n                    }" ({ "{") (expression_statement "bVar10 = 0x80;" (assignment_expression "bVar10 = 0x80" (identifier "bVar10") (= "=") (number_literal "0x80")) (; ";")) (} "}")) (else_clause "else {\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" (else "else") (compound_statement "{\n                      local_28[1] = pcVar24[1];\n                      if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" ({ "{") (expression_statement "local_28[1] = pcVar24[1];" (assignment_expression "local_28[1] = pcVar24[1]" (subscript_expression "local_28[1]" (identifier "local_28") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "pcVar24[1]" (identifier "pcVar24") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (uVar17 == 2) {\n                        bVar10 = 0xc0;\n                      }\n                      else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" (if "if") (parenthesized_expression "(uVar17 == 2)" (( "(") (binary_expression "uVar17 == 2" (identifier "uVar17") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                        bVar10 = 0xc0;\n                      }" ({ "{") (expression_statement "bVar10 = 0xc0;" (assignment_expression "bVar10 = 0xc0" (identifier "bVar10") (= "=") (number_literal "0xc0")) (; ";")) (} "}")) (else_clause "else {\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" (else "else") (compound_statement "{\n                        local_28[2] = pcVar24[2];\n                        if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" ({ "{") (expression_statement "local_28[2] = pcVar24[2];" (assignment_expression "local_28[2] = pcVar24[2]" (subscript_expression "local_28[2]" (identifier "local_28") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "pcVar24[2]" (identifier "pcVar24") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (uVar17 == 3) {\n                          bVar10 = 0xe0;\n                        }\n                        else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }" (if "if") (parenthesized_expression "(uVar17 == 3)" (( "(") (binary_expression "uVar17 == 3" (identifier "uVar17") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n                          bVar10 = 0xe0;\n                        }" ({ "{") (expression_statement "bVar10 = 0xe0;" (assignment_expression "bVar10 = 0xe0" (identifier "bVar10") (= "=") (number_literal "0xe0")) (; ";")) (} "}")) (else_clause "else {\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }" (else "else") (compound_statement "{\n                          local_28[3] = pcVar24[3];\n                          if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }\n                        }" ({ "{") (expression_statement "local_28[3] = pcVar24[3];" (assignment_expression "local_28[3] = pcVar24[3]" (subscript_expression "local_28[3]" (identifier "local_28") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "pcVar24[3]" (identifier "pcVar24") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (uVar17 == 4) {\n                            bVar10 = 0xf0;\n                          }\n                          else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }" (if "if") (parenthesized_expression "(uVar17 == 4)" (( "(") (binary_expression "uVar17 == 4" (identifier "uVar17") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n                            bVar10 = 0xf0;\n                          }" ({ "{") (expression_statement "bVar10 = 0xf0;" (assignment_expression "bVar10 = 0xf0" (identifier "bVar10") (= "=") (number_literal "0xf0")) (; ";")) (} "}")) (else_clause "else {\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }" (else "else") (compound_statement "{\n                            local_24 = pcVar24[4];\n                            if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }\n                          }" ({ "{") (expression_statement "local_24 = pcVar24[4];" (assignment_expression "local_24 = pcVar24[4]" (identifier "local_24") (= "=") (subscript_expression "pcVar24[4]" (identifier "pcVar24") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (uVar17 == 5) {\n                              bVar10 = 0xf8;\n                            }\n                            else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }" (if "if") (parenthesized_expression "(uVar17 == 5)" (( "(") (binary_expression "uVar17 == 5" (identifier "uVar17") (== "==") (number_literal "5")) () ")")) (compound_statement "{\n                              bVar10 = 0xf8;\n                            }" ({ "{") (expression_statement "bVar10 = 0xf8;" (assignment_expression "bVar10 = 0xf8" (identifier "bVar10") (= "=") (number_literal "0xf8")) (; ";")) (} "}")) (else_clause "else {\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }" (else "else") (compound_statement "{\n                              local_23 = pcVar24[5];\n                              if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }\n                            }" ({ "{") (expression_statement "local_23 = pcVar24[5];" (assignment_expression "local_23 = pcVar24[5]" (identifier "local_23") (= "=") (subscript_expression "pcVar24[5]" (identifier "pcVar24") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if (uVar17 == 6) {\n                                bVar10 = 0xfc;\n                              }\n                              else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }" (if "if") (parenthesized_expression "(uVar17 == 6)" (( "(") (binary_expression "uVar17 == 6" (identifier "uVar17") (== "==") (number_literal "6")) () ")")) (compound_statement "{\n                                bVar10 = 0xfc;\n                              }" ({ "{") (expression_statement "bVar10 = 0xfc;" (assignment_expression "bVar10 = 0xfc" (identifier "bVar10") (= "=") (number_literal "0xfc")) (; ";")) (} "}")) (else_clause "else {\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }" (else "else") (compound_statement "{\n                                local_22 = pcVar24[6];\n                                if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }\n                              }" ({ "{") (expression_statement "local_22 = pcVar24[6];" (assignment_expression "local_22 = pcVar24[6]" (identifier "local_22") (= "=") (subscript_expression "pcVar24[6]" (identifier "pcVar24") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if ((int)uVar17 < 8) {\n                                  bVar10 = 0xfe;\n                                }\n                                else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }" (if "if") (parenthesized_expression "((int)uVar17 < 8)" (( "(") (binary_expression "(int)uVar17 < 8" (cast_expression "(int)uVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar17")) (< "<") (number_literal "8")) () ")")) (compound_statement "{\n                                  bVar10 = 0xfe;\n                                }" ({ "{") (expression_statement "bVar10 = 0xfe;" (assignment_expression "bVar10 = 0xfe" (identifier "bVar10") (= "=") (number_literal "0xfe")) (; ";")) (} "}")) (else_clause "else {\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }" (else "else") (compound_statement "{\n                                  local_21 = pcVar24[7];\n                                  bVar10 = 0xff;\n                                }" ({ "{") (expression_statement "local_21 = pcVar24[7];" (assignment_expression "local_21 = pcVar24[7]" (identifier "local_21") (= "=") (subscript_expression "pcVar24[7]" (identifier "pcVar24") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "bVar10 = 0xff;" (assignment_expression "bVar10 = 0xff" (identifier "bVar10") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (expression_statement "local_78 = local_28 + uVar23;" (assignment_expression "local_78 = local_28 + uVar23" (identifier "local_78") (= "=") (binary_expression "local_28 + uVar23" (identifier "local_28") (+ "+") (identifier "uVar23"))) (; ";")) (} "}")) (else_clause "else {\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" (else "else") (compound_statement "{\n                    if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }\n                    if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" ({ "{") (if_statement "if (*pcVar24 == *pcVar1) {\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }\n                    else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }" (if "if") (parenthesized_expression "(*pcVar24 == *pcVar1)" (( "(") (binary_expression "*pcVar24 == *pcVar1" (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) (== "==") (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1"))) () ")")) (compound_statement "{\n                      bVar10 = 0;\n                      local_78 = local_28;\n                    }" ({ "{") (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" (identifier "bVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_78 = local_28;" (assignment_expression "local_78 = local_28" (identifier "local_78") (= "=") (identifier "local_28")) (; ";")) (} "}")) (else_clause "else {\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }" (else "else") (compound_statement "{\n                      bVar10 = 0x80;\n                      local_78 = local_28 + 1;\n                      local_28[0] = *pcVar24;\n                    }" ({ "{") (expression_statement "bVar10 = 0x80;" (assignment_expression "bVar10 = 0x80" (identifier "bVar10") (= "=") (number_literal "0x80")) (; ";")) (expression_statement "local_78 = local_28 + 1;" (assignment_expression "local_78 = local_28 + 1" (identifier "local_78") (= "=") (binary_expression "local_28 + 1" (identifier "local_28") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_28[0] = *pcVar24;" (assignment_expression "local_28[0] = *pcVar24" (subscript_expression "local_28[0]" (identifier "local_28") ([ "[") (number_literal "0") (] "]")) (= "=") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24"))) (; ";")) (} "}")))) (if_statement "if (uVar17 != 1) {\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" (if "if") (parenthesized_expression "(uVar17 != 1)" (( "(") (binary_expression "uVar17 != 1" (identifier "uVar17") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n                      local_b0 = local_78;\n                      if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }\n                      local_78 = local_b0;\n                      if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" ({ "{") (expression_statement "local_b0 = local_78;" (assignment_expression "local_b0 = local_78" (identifier "local_b0") (= "=") (identifier "local_78")) (; ";")) (if_statement "if (pcVar1[1] != pcVar24[1]) {\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }" (if "if") (parenthesized_expression "(pcVar1[1] != pcVar24[1])" (( "(") (binary_expression "pcVar1[1] != pcVar24[1]" (subscript_expression "pcVar1[1]" (identifier "pcVar1") ([ "[") (number_literal "1") (] "]")) (!= "!=") (subscript_expression "pcVar24[1]" (identifier "pcVar24") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n                        local_b0 = local_78 + 1;\n                        bVar10 = bVar10 | 0x40;\n                        *local_78 = pcVar24[1];\n                      }" ({ "{") (expression_statement "local_b0 = local_78 + 1;" (assignment_expression "local_b0 = local_78 + 1" (identifier "local_b0") (= "=") (binary_expression "local_78 + 1" (identifier "local_78") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar10 = bVar10 | 0x40;" (assignment_expression "bVar10 = bVar10 | 0x40" (identifier "bVar10") (= "=") (binary_expression "bVar10 | 0x40" (identifier "bVar10") (| "|") (number_literal "0x40"))) (; ";")) (expression_statement "*local_78 = pcVar24[1];" (assignment_expression "*local_78 = pcVar24[1]" (pointer_expression "*local_78" (* "*") (identifier "local_78")) (= "=") (subscript_expression "pcVar24[1]" (identifier "pcVar24") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (expression_statement "local_78 = local_b0;" (assignment_expression "local_78 = local_b0" (identifier "local_78") (= "=") (identifier "local_b0")) (; ";")) (if_statement "if (uVar17 != 2) {\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" (if "if") (parenthesized_expression "(uVar17 != 2)" (( "(") (binary_expression "uVar17 != 2" (identifier "uVar17") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                        if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }\n                        if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" ({ "{") (if_statement "if (pcVar1[2] != pcVar24[2]) {\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }" (if "if") (parenthesized_expression "(pcVar1[2] != pcVar24[2])" (( "(") (binary_expression "pcVar1[2] != pcVar24[2]" (subscript_expression "pcVar1[2]" (identifier "pcVar1") ([ "[") (number_literal "2") (] "]")) (!= "!=") (subscript_expression "pcVar24[2]" (identifier "pcVar24") ([ "[") (number_literal "2") (] "]"))) () ")")) (compound_statement "{\n                          bVar10 = bVar10 | 0x20;\n                          local_78 = local_b0 + 1;\n                          *local_b0 = pcVar24[2];\n                        }" ({ "{") (expression_statement "bVar10 = bVar10 | 0x20;" (assignment_expression "bVar10 = bVar10 | 0x20" (identifier "bVar10") (= "=") (binary_expression "bVar10 | 0x20" (identifier "bVar10") (| "|") (number_literal "0x20"))) (; ";")) (expression_statement "local_78 = local_b0 + 1;" (assignment_expression "local_78 = local_b0 + 1" (identifier "local_78") (= "=") (binary_expression "local_b0 + 1" (identifier "local_b0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*local_b0 = pcVar24[2];" (assignment_expression "*local_b0 = pcVar24[2]" (pointer_expression "*local_b0" (* "*") (identifier "local_b0")) (= "=") (subscript_expression "pcVar24[2]" (identifier "pcVar24") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}"))) (if_statement "if (uVar17 != 3) {\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }" (if "if") (parenthesized_expression "(uVar17 != 3)" (( "(") (binary_expression "uVar17 != 3" (identifier "uVar17") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n                          local_b0 = local_78;\n                          if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }\n                          local_78 = local_b0;\n                          if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }\n                        }" ({ "{") (expression_statement "local_b0 = local_78;" (assignment_expression "local_b0 = local_78" (identifier "local_b0") (= "=") (identifier "local_78")) (; ";")) (if_statement "if (pcVar1[3] != pcVar24[3]) {\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }" (if "if") (parenthesized_expression "(pcVar1[3] != pcVar24[3])" (( "(") (binary_expression "pcVar1[3] != pcVar24[3]" (subscript_expression "pcVar1[3]" (identifier "pcVar1") ([ "[") (number_literal "3") (] "]")) (!= "!=") (subscript_expression "pcVar24[3]" (identifier "pcVar24") ([ "[") (number_literal "3") (] "]"))) () ")")) (compound_statement "{\n                            local_b0 = local_78 + 1;\n                            bVar10 = bVar10 | 0x10;\n                            *local_78 = pcVar24[3];\n                          }" ({ "{") (expression_statement "local_b0 = local_78 + 1;" (assignment_expression "local_b0 = local_78 + 1" (identifier "local_b0") (= "=") (binary_expression "local_78 + 1" (identifier "local_78") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar10 = bVar10 | 0x10;" (assignment_expression "bVar10 = bVar10 | 0x10" (identifier "bVar10") (= "=") (binary_expression "bVar10 | 0x10" (identifier "bVar10") (| "|") (number_literal "0x10"))) (; ";")) (expression_statement "*local_78 = pcVar24[3];" (assignment_expression "*local_78 = pcVar24[3]" (pointer_expression "*local_78" (* "*") (identifier "local_78")) (= "=") (subscript_expression "pcVar24[3]" (identifier "pcVar24") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}"))) (expression_statement "local_78 = local_b0;" (assignment_expression "local_78 = local_b0" (identifier "local_78") (= "=") (identifier "local_b0")) (; ";")) (if_statement "if (uVar17 != 4) {\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }" (if "if") (parenthesized_expression "(uVar17 != 4)" (( "(") (binary_expression "uVar17 != 4" (identifier "uVar17") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n                            if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }\n                            if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }\n                          }" ({ "{") (if_statement "if (pcVar1[4] != pcVar24[4]) {\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }" (if "if") (parenthesized_expression "(pcVar1[4] != pcVar24[4])" (( "(") (binary_expression "pcVar1[4] != pcVar24[4]" (subscript_expression "pcVar1[4]" (identifier "pcVar1") ([ "[") (number_literal "4") (] "]")) (!= "!=") (subscript_expression "pcVar24[4]" (identifier "pcVar24") ([ "[") (number_literal "4") (] "]"))) () ")")) (compound_statement "{\n                              bVar10 = bVar10 | 8;\n                              local_78 = local_b0 + 1;\n                              *local_b0 = pcVar24[4];\n                            }" ({ "{") (expression_statement "bVar10 = bVar10 | 8;" (assignment_expression "bVar10 = bVar10 | 8" (identifier "bVar10") (= "=") (binary_expression "bVar10 | 8" (identifier "bVar10") (| "|") (number_literal "8"))) (; ";")) (expression_statement "local_78 = local_b0 + 1;" (assignment_expression "local_78 = local_b0 + 1" (identifier "local_78") (= "=") (binary_expression "local_b0 + 1" (identifier "local_b0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*local_b0 = pcVar24[4];" (assignment_expression "*local_b0 = pcVar24[4]" (pointer_expression "*local_b0" (* "*") (identifier "local_b0")) (= "=") (subscript_expression "pcVar24[4]" (identifier "pcVar24") ([ "[") (number_literal "4") (] "]"))) (; ";")) (} "}"))) (if_statement "if (uVar17 != 5) {\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }" (if "if") (parenthesized_expression "(uVar17 != 5)" (( "(") (binary_expression "uVar17 != 5" (identifier "uVar17") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n                              local_b0 = local_78;\n                              if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }\n                              local_78 = local_b0;\n                              if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }\n                            }" ({ "{") (expression_statement "local_b0 = local_78;" (assignment_expression "local_b0 = local_78" (identifier "local_b0") (= "=") (identifier "local_78")) (; ";")) (if_statement "if (pcVar1[5] != pcVar24[5]) {\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }" (if "if") (parenthesized_expression "(pcVar1[5] != pcVar24[5])" (( "(") (binary_expression "pcVar1[5] != pcVar24[5]" (subscript_expression "pcVar1[5]" (identifier "pcVar1") ([ "[") (number_literal "5") (] "]")) (!= "!=") (subscript_expression "pcVar24[5]" (identifier "pcVar24") ([ "[") (number_literal "5") (] "]"))) () ")")) (compound_statement "{\n                                local_b0 = local_78 + 1;\n                                bVar10 = bVar10 | 4;\n                                *local_78 = pcVar24[5];\n                              }" ({ "{") (expression_statement "local_b0 = local_78 + 1;" (assignment_expression "local_b0 = local_78 + 1" (identifier "local_b0") (= "=") (binary_expression "local_78 + 1" (identifier "local_78") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar10 = bVar10 | 4;" (assignment_expression "bVar10 = bVar10 | 4" (identifier "bVar10") (= "=") (binary_expression "bVar10 | 4" (identifier "bVar10") (| "|") (number_literal "4"))) (; ";")) (expression_statement "*local_78 = pcVar24[5];" (assignment_expression "*local_78 = pcVar24[5]" (pointer_expression "*local_78" (* "*") (identifier "local_78")) (= "=") (subscript_expression "pcVar24[5]" (identifier "pcVar24") ([ "[") (number_literal "5") (] "]"))) (; ";")) (} "}"))) (expression_statement "local_78 = local_b0;" (assignment_expression "local_78 = local_b0" (identifier "local_78") (= "=") (identifier "local_b0")) (; ";")) (if_statement "if (uVar17 != 6) {\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }" (if "if") (parenthesized_expression "(uVar17 != 6)" (( "(") (binary_expression "uVar17 != 6" (identifier "uVar17") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n                                if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }\n                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }\n                              }" ({ "{") (if_statement "if (pcVar1[6] != pcVar24[6]) {\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }" (if "if") (parenthesized_expression "(pcVar1[6] != pcVar24[6])" (( "(") (binary_expression "pcVar1[6] != pcVar24[6]" (subscript_expression "pcVar1[6]" (identifier "pcVar1") ([ "[") (number_literal "6") (] "]")) (!= "!=") (subscript_expression "pcVar24[6]" (identifier "pcVar24") ([ "[") (number_literal "6") (] "]"))) () ")")) (compound_statement "{\n                                  bVar10 = bVar10 | 2;\n                                  local_78 = local_b0 + 1;\n                                  *local_b0 = pcVar24[6];\n                                }" ({ "{") (expression_statement "bVar10 = bVar10 | 2;" (assignment_expression "bVar10 = bVar10 | 2" (identifier "bVar10") (= "=") (binary_expression "bVar10 | 2" (identifier "bVar10") (| "|") (number_literal "2"))) (; ";")) (expression_statement "local_78 = local_b0 + 1;" (assignment_expression "local_78 = local_b0 + 1" (identifier "local_78") (= "=") (binary_expression "local_b0 + 1" (identifier "local_b0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*local_b0 = pcVar24[6];" (assignment_expression "*local_b0 = pcVar24[6]" (pointer_expression "*local_b0" (* "*") (identifier "local_b0")) (= "=") (subscript_expression "pcVar24[6]" (identifier "pcVar24") ([ "[") (number_literal "6") (] "]"))) (; ";")) (} "}"))) (if_statement "if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }" (if "if") (parenthesized_expression "((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7]))" (( "(") (binary_expression "(7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])" (parenthesized_expression "(7 < (int)uVar17)" (( "(") (binary_expression "7 < (int)uVar17" (number_literal "7") (< "<") (cast_expression "(int)uVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar17"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar1[7] != pcVar24[7])" (( "(") (binary_expression "pcVar1[7] != pcVar24[7]" (subscript_expression "pcVar1[7]" (identifier "pcVar1") ([ "[") (number_literal "7") (] "]")) (!= "!=") (subscript_expression "pcVar24[7]" (identifier "pcVar24") ([ "[") (number_literal "7") (] "]"))) () ")"))) () ")")) (compound_statement "{\n                                  bVar10 = bVar10 | 1;\n                                  *local_78 = pcVar24[7];\n                                  local_78 = local_78 + 1;\n                                }" ({ "{") (expression_statement "bVar10 = bVar10 | 1;" (assignment_expression "bVar10 = bVar10 | 1" (identifier "bVar10") (= "=") (binary_expression "bVar10 | 1" (identifier "bVar10") (| "|") (number_literal "1"))) (; ";")) (expression_statement "*local_78 = pcVar24[7];" (assignment_expression "*local_78 = pcVar24[7]" (pointer_expression "*local_78" (* "*") (identifier "local_78")) (= "=") (subscript_expression "pcVar24[7]" (identifier "pcVar24") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "local_78 = local_78 + 1;" (assignment_expression "local_78 = local_78 + 1" (identifier "local_78") (= "=") (binary_expression "local_78 + 1" (identifier "local_78") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}")))) (expression_statement "uVar17 = uVar17 - 8;" (assignment_expression "uVar17 = uVar17 - 8" (identifier "uVar17") (= "=") (binary_expression "uVar17 - 8" (identifier "uVar17") (- "-") (number_literal "8"))) (; ";")) (expression_statement "WriteBlobByte(param_2,bVar10);" (call_expression "WriteBlobByte(param_2,bVar10)" (identifier "WriteBlobByte") (argument_list "(param_2,bVar10)" (( "(") (identifier "param_2") (, ",") (identifier "bVar10") () ")"))) (; ";")) (expression_statement "WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);" (call_expression "WriteBlob(param_2,(int)local_78 - (int)local_28,local_28)" (identifier "WriteBlob") (argument_list "(param_2,(int)local_78 - (int)local_28,local_28)" (( "(") (identifier "param_2") (, ",") (binary_expression "(int)local_78 - (int)local_28" (cast_expression "(int)local_78" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_78")) (- "-") (cast_expression "(int)local_28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_28"))) (, ",") (identifier "local_28") () ")"))) (; ";")) (expression_statement "pcVar1 = pcVar1 + 8;" (assignment_expression "pcVar1 = pcVar1 + 8" (identifier "pcVar1") (= "=") (binary_expression "pcVar1 + 8" (identifier "pcVar1") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "pcVar24 = pcVar24 + 8;" (assignment_expression "pcVar24 = pcVar24 + 8" (identifier "pcVar24") (= "=") (binary_expression "pcVar24 + 8" (identifier "pcVar24") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17)" (( "(") (binary_expression "(uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17" (binary_expression "(uVar21 - 8) - (uVar21 - 1 & 0xfffffff8)" (parenthesized_expression "(uVar21 - 8)" (( "(") (binary_expression "uVar21 - 8" (identifier "uVar21") (- "-") (number_literal "8")) () ")")) (- "-") (parenthesized_expression "(uVar21 - 1 & 0xfffffff8)" (( "(") (binary_expression "uVar21 - 1 & 0xfffffff8" (binary_expression "uVar21 - 1" (identifier "uVar21") (- "-") (number_literal "1")) (& "&") (number_literal "0xfffffff8")) () ")"))) (!= "!=") (identifier "uVar17")) () ")")) (; ";")) (} "}"))) (expression_statement "memcpy(local_7c,pcVar18,uVar21);" (call_expression "memcpy(local_7c,pcVar18,uVar21)" (identifier "memcpy") (argument_list "(local_7c,pcVar18,uVar21)" (( "(") (identifier "local_7c") (, ",") (identifier "pcVar18") (, ",") (identifier "uVar21") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              WriteBlob(param_2,uVar21,pcVar18);\n            }" (else "else") (compound_statement "{\n              WriteBlob(param_2,uVar21,pcVar18);\n            }" ({ "{") (expression_statement "WriteBlob(param_2,uVar21,pcVar18);" (call_expression "WriteBlob(param_2,uVar21,pcVar18)" (identifier "WriteBlob") (argument_list "(param_2,uVar21,pcVar18)" (( "(") (identifier "param_2") (, ",") (identifier "uVar21") (, ",") (identifier "pcVar18") () ")"))) (; ";")) (} "}"))))) (} "}")))) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" (identifier "iVar20") (= "=") (binary_expression "iVar20 + 1" (identifier "iVar20") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar20 < param_2[7])" (( "(") (binary_expression "iVar20 < param_2[7]" (identifier "iVar20") (< "<") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) () ")")) (; ";")) (} "}"))) (if_statement "if ((local_48 & 0x2000) != 0) {\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }" (if "if") (parenthesized_expression "((local_48 & 0x2000) != 0)" (( "(") (binary_expression "(local_48 & 0x2000) != 0" (parenthesized_expression "(local_48 & 0x2000)" (( "(") (binary_expression "local_48 & 0x2000" (identifier "local_48") (& "&") (number_literal "0x2000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        SeekBlob(param_2,lVar31 + 6,0);\n        WriteBlobMSBShort(param_2,local_48);\n        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);\n        WriteBlobByte(param_2,0);\n      }" ({ "{") (expression_statement "SeekBlob(param_2,lVar31 + 6,0);" (call_expression "SeekBlob(param_2,lVar31 + 6,0)" (identifier "SeekBlob") (argument_list "(param_2,lVar31 + 6,0)" (( "(") (identifier "param_2") (, ",") (binary_expression "lVar31 + 6" (identifier "lVar31") (+ "+") (number_literal "6")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,local_48);" (call_expression "WriteBlobMSBShort(param_2,local_48)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,local_48)" (( "(") (identifier "param_2") (, ",") (identifier "local_48") () ")"))) (; ";")) (expression_statement "lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);" (assignment_expression "lVar32 = SeekBlob(param_2,lVar31 + 0xc,0)" (identifier "lVar32") (= "=") (call_expression "SeekBlob(param_2,lVar31 + 0xc,0)" (identifier "SeekBlob") (argument_list "(param_2,lVar31 + 0xc,0)" (( "(") (identifier "param_2") (, ",") (binary_expression "lVar31 + 0xc" (identifier "lVar31") (+ "+") (number_literal "0xc")) (, ",") (number_literal "0") () ")")))) (; ";")) (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") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_a0 == 0x10) {\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }" (if "if") (parenthesized_expression "(local_a0 == 0x10)" (( "(") (binary_expression "local_a0 == 0x10" (identifier "local_a0") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);\n        WriteBlobByte(param_2,0);\n        dVar2 = (double)DAT_00306a38;\n        dVar4 = (double)DAT_002df8a8;\n        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));\n        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));\n        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));\n      }" ({ "{") (expression_statement "lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);" (assignment_expression "lVar32 = SeekBlob(param_2,lVar31 + 0x14,0)" (identifier "lVar32") (= "=") (call_expression "SeekBlob(param_2,lVar31 + 0x14,0)" (identifier "SeekBlob") (argument_list "(param_2,lVar31 + 0x14,0)" (( "(") (identifier "param_2") (, ",") (binary_expression "lVar31 + 0x14" (identifier "lVar31") (+ "+") (number_literal "0x14")) (, ",") (number_literal "0") () ")")))) (; ";")) (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 "dVar2 = (double)DAT_00306a38;" (assignment_expression "dVar2 = (double)DAT_00306a38" (identifier "dVar2") (= "=") (cast_expression "(double)DAT_00306a38" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_00306a38"))) (; ";")) (expression_statement "dVar4 = (double)DAT_002df8a8;" (assignment_expression "dVar4 = (double)DAT_002df8a8" (identifier "dVar4") (= "=") (cast_expression "(double)DAT_002df8a8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df8a8"))) (; ";")) (expression_statement "WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));" (call_expression "WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8))" (identifier "WriteBlobByte") (argument_list "(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8))" (( "(") (identifier "param_2") (, ",") (cast_expression "(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (cast_expression "(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8)" (identifier "ROUND") (argument_list "(((float)local_94 * DAT_00306a38) / DAT_002df8a8)" (( "(") (binary_expression "((float)local_94 * DAT_00306a38) / DAT_002df8a8" (parenthesized_expression "((float)local_94 * DAT_00306a38)" (( "(") (binary_expression "(float)local_94 * DAT_00306a38" (cast_expression "(float)local_94" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "local_94")) (* "*") (identifier "DAT_00306a38")) () ")")) (/ "/") (identifier "DAT_002df8a8")) () ")"))))) () ")"))) (; ";")) (expression_statement "WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));" (call_expression "WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4))" (identifier "WriteBlobByte") (argument_list "(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4))" (( "(") (identifier "param_2") (, ",") (cast_expression "(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (cast_expression "(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND((local_84 * (double)DAT_0030d3a4) / dVar4)" (identifier "ROUND") (argument_list "((local_84 * (double)DAT_0030d3a4) / dVar4)" (( "(") (binary_expression "(local_84 * (double)DAT_0030d3a4) / dVar4" (parenthesized_expression "(local_84 * (double)DAT_0030d3a4)" (( "(") (binary_expression "local_84 * (double)DAT_0030d3a4" (identifier "local_84") (* "*") (cast_expression "(double)DAT_0030d3a4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0030d3a4"))) () ")")) (/ "/") (identifier "dVar4")) () ")"))))) () ")"))) (; ";")) (expression_statement "WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));" (call_expression "WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4))" (identifier "WriteBlobByte") (argument_list "(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4))" (( "(") (identifier "param_2") (, ",") (cast_expression "(char)(short)ROUND((dVar2 * local_8c) / dVar4)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (cast_expression "(short)ROUND((dVar2 * local_8c) / dVar4)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND((dVar2 * local_8c) / dVar4)" (identifier "ROUND") (argument_list "((dVar2 * local_8c) / dVar4)" (( "(") (binary_expression "(dVar2 * local_8c) / dVar4" (parenthesized_expression "(dVar2 * local_8c)" (( "(") (binary_expression "dVar2 * local_8c" (identifier "dVar2") (* "*") (identifier "local_8c")) () ")")) (/ "/") (identifier "dVar4")) () ")"))))) () ")"))) (; ";")) (} "}"))) (if_statement "if ((short)local_48 < 0) {\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }" (if "if") (parenthesized_expression "((short)local_48 < 0)" (( "(") (binary_expression "(short)local_48 < 0" (cast_expression "(short)local_48" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "local_48")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);\n        sVar13 = GetBlobSize(param_2);\n        local_74._0_2_ = (short)lVar31;\n        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);\n      }" ({ "{") (expression_statement "sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);" (assignment_expression "sVar12 = SeekBlob(param_2,lVar32 + lVar31,0)" (identifier "sVar12") (= "=") (call_expression "SeekBlob(param_2,lVar32 + lVar31,0)" (identifier "SeekBlob") (argument_list "(param_2,lVar32 + lVar31,0)" (( "(") (identifier "param_2") (, ",") (binary_expression "lVar32 + lVar31" (identifier "lVar32") (+ "+") (identifier "lVar31")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "sVar13 = GetBlobSize(param_2);" (assignment_expression "sVar13 = GetBlobSize(param_2)" (identifier "sVar13") (= "=") (call_expression "GetBlobSize(param_2)" (identifier "GetBlobSize") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "local_74._0_2_ = (short)lVar31;" (assignment_expression "local_74._0_2_ = (short)lVar31" (field_expression "local_74._0_2_" (identifier "local_74") (. ".") (field_identifier "_0_2_")) (= "=") (cast_expression "(short)lVar31" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "lVar31"))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);" (call_expression "WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,(sVar13 - (short)local_74) - sVar12)" (( "(") (identifier "param_2") (, ",") (binary_expression "(sVar13 - (short)local_74) - sVar12" (parenthesized_expression "(sVar13 - (short)local_74)" (( "(") (binary_expression "sVar13 - (short)local_74" (identifier "sVar13") (- "-") (cast_expression "(short)local_74" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "local_74"))) () ")")) (- "-") (identifier "sVar12")) () ")"))) (; ";")) (} "}"))) (expression_statement "RelinquishMagickMemory(pcVar18);" (call_expression "RelinquishMagickMemory(pcVar18)" (identifier "RelinquishMagickMemory") (argument_list "(pcVar18)" (( "(") (identifier "pcVar18") () ")"))) (; ";")) (if_statement "if (local_7c != (char *)0x0) {\n        RelinquishMagickMemory(local_7c);\n      }" (if "if") (parenthesized_expression "(local_7c != (char *)0x0)" (( "(") (binary_expression "local_7c != (char *)0x0" (identifier "local_7c") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        RelinquishMagickMemory(local_7c);\n      }" ({ "{") (expression_statement "RelinquishMagickMemory(local_7c);" (call_expression "RelinquishMagickMemory(local_7c)" (identifier "RelinquishMagickMemory") (argument_list "(local_7c)" (( "(") (identifier "local_7c") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar20 = GetNextImageInList(param_2);" (assignment_expression "iVar20 = GetNextImageInList(param_2)" (identifier "iVar20") (= "=") (call_expression "GetNextImageInList(param_2)" (identifier "GetNextImageInList") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar20 == 0) goto LAB_00261e48;" (if "if") (parenthesized_expression "(iVar20 == 0)" (( "(") (binary_expression "iVar20 == 0" (identifier "iVar20") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00261e48;" (goto "goto") (statement_identifier "LAB_00261e48") (; ";"))) (expression_statement "uVar21 = GetBlobSize(param_2);" (assignment_expression "uVar21 = GetBlobSize(param_2)" (identifier "uVar21") (= "=") (call_expression "GetBlobSize(param_2)" (identifier "GetBlobSize") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "uVar21 = uVar21 & 3;" (assignment_expression "uVar21 = uVar21 & 3" (identifier "uVar21") (= "=") (binary_expression "uVar21 & 3" (identifier "uVar21") (& "&") (number_literal "3"))) (; ";")) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" (identifier "iVar20") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar21 != 0) {\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }" (if "if") (parenthesized_expression "(uVar21 != 0)" (( "(") (binary_expression "uVar21 != 0" (identifier "uVar21") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);\n      }" ({ "{") (do_statement "do {\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\n        } while (iVar20 != 0 || uVar21 != 0);" (do "do") (compound_statement "{\n          WriteBlobByte(param_2,0);\n          bVar30 = uVar21 != 0;\n          uVar21 = uVar21 - 1;\n          iVar20 = iVar20 + -1 + (uint)bVar30;\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 "bVar30 = uVar21 != 0;" (assignment_expression "bVar30 = uVar21 != 0" (identifier "bVar30") (= "=") (binary_expression "uVar21 != 0" (identifier "uVar21") (!= "!=") (number_literal "0"))) (; ";")) (expression_statement "uVar21 = uVar21 - 1;" (assignment_expression "uVar21 = uVar21 - 1" (identifier "uVar21") (= "=") (binary_expression "uVar21 - 1" (identifier "uVar21") (- "-") (number_literal "1"))) (; ";")) (expression_statement "iVar20 = iVar20 + -1 + (uint)bVar30;" (assignment_expression "iVar20 = iVar20 + -1 + (uint)bVar30" (identifier "iVar20") (= "=") (binary_expression "iVar20 + -1 + (uint)bVar30" (binary_expression "iVar20 + -1" (identifier "iVar20") (+ "+") (number_literal "-1")) (+ "+") (cast_expression "(uint)bVar30" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar30")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar20 != 0 || uVar21 != 0)" (( "(") (binary_expression "iVar20 != 0 || uVar21 != 0" (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar21 != 0" (identifier "uVar21") (!= "!=") (number_literal "0"))) () ")")) (; ";")) (} "}"))) (expression_statement "SeekBlob(param_2,lVar31 + 10,0);" (call_expression "SeekBlob(param_2,lVar31 + 10,0)" (identifier "SeekBlob") (argument_list "(param_2,lVar31 + 10,0)" (( "(") (identifier "param_2") (, ",") (binary_expression "lVar31 + 10" (identifier "lVar31") (+ "+") (number_literal "10")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar20 = GetBlobSize(param_2);" (assignment_expression "iVar20 = GetBlobSize(param_2)" (identifier "iVar20") (= "=") (call_expression "GetBlobSize(param_2)" (identifier "GetBlobSize") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);" (call_expression "WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff)" (identifier "WriteBlobMSBShort") (argument_list "(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff)" (( "(") (identifier "param_2") (, ",") (binary_expression "(uint)(iVar20 - iVar14) >> 2 & 0xffff" (binary_expression "(uint)(iVar20 - iVar14) >> 2" (call_expression "(uint)(iVar20 - iVar14)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar20 - iVar14)" (( "(") (binary_expression "iVar20 - iVar14" (identifier "iVar20") (- "-") (identifier "iVar14")) () ")"))) (>> ">>") (number_literal "2")) (& "&") (number_literal "0xffff")) () ")"))) (; ";")) (expression_statement "lVar31 = GetBlobSize(param_2);" (assignment_expression "lVar31 = GetBlobSize(param_2)" (identifier "lVar31") (= "=") (call_expression "GetBlobSize(param_2)" (identifier "GetBlobSize") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "SeekBlob(param_2,lVar31);" (call_expression "SeekBlob(param_2,lVar31)" (identifier "SeekBlob") (argument_list "(param_2,lVar31)" (( "(") (identifier "param_2") (, ",") (identifier "lVar31") () ")"))) (; ";")) (expression_statement "param_2 = (int *)SyncNextImageInList(param_2);" (assignment_expression "param_2 = (int *)SyncNextImageInList(param_2)" (identifier "param_2") (= "=") (cast_expression "(int *)SyncNextImageInList(param_2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "SyncNextImageInList(param_2)" (identifier "SyncNextImageInList") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "bVar30 = 0xfffffffe < local_54;" (assignment_expression "bVar30 = 0xfffffffe < local_54" (identifier "bVar30") (= "=") (binary_expression "0xfffffffe < local_54" (number_literal "0xfffffffe") (< "<") (identifier "local_54"))) (; ";")) (expression_statement "iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);" (assignment_expression "iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0)" (identifier "iVar14") (= "=") (call_expression "SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0)" (identifier "SetImageProgress") (argument_list "(param_2,"Save/Images",local_54,local_50,uVar16,0)" (( "(") (identifier "param_2") (, ",") (string_literal ""Save/Images"" (" """) (string_content "Save/Images") (" """)) (, ",") (identifier "local_54") (, ",") (identifier "local_50") (, ",") (identifier "uVar16") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))\n      goto LAB_00261e48;" (if "if") (parenthesized_expression "((iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))" (( "(") (binary_expression "(iVar14 == 0) ||\n         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0)" (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0)" (( "(") (comma_expression "local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0" (assignment_expression "local_54 = local_54 + 1" (identifier "local_54") (= "=") (binary_expression "local_54 + 1" (identifier "local_54") (+ "+") (number_literal "1"))) (, ",") (comma_expression "local_50 = local_50 + (uint)bVar30, param_1[3] == 0" (assignment_expression "local_50 = local_50 + (uint)bVar30" (identifier "local_50") (= "=") (binary_expression "local_50 + (uint)bVar30" (identifier "local_50") (+ "+") (cast_expression "(uint)bVar30" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar30")))) (, ",") (binary_expression "param_1[3] == 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")))) () ")"))) () ")")) (goto_statement "goto LAB_00261e48;" (goto "goto") (statement_identifier "LAB_00261e48") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00260565:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_002decd0();\n  }" (statement_identifier "LAB_00260565") (: ":") (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_002decd0();\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                    \n    FUN_002decd0();\n  }" ({ "{") (expression_statement "FUN_002decd0();" (call_expression "FUN_002decd0()" (identifier "FUN_002decd0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return iVar14;" (return "return") (identifier "iVar14") (; ";")) (labeled_statement "LAB_00261ad3:\n  dVar2 = (double)iVar22;" (statement_identifier "LAB_00261ad3") (: ":") (expression_statement "dVar2 = (double)iVar22;" (assignment_expression "dVar2 = (double)iVar22" (identifier "dVar2") (= "=") (cast_expression "(double)iVar22" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar22"))) (; ";"))) (labeled_statement "LAB_00261adb:\n  if (iVar8 != 0) {\n    *(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;\n  }" (statement_identifier "LAB_00261adb") (: ":") (if_statement "if (iVar8 != 0) {\n    *(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;\n  }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;\n  }" ({ "{") (expression_statement "*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;" (assignment_expression "*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2" (pointer_expression "*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)" (* "*") (cast_expression "(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + *(int *)(iVar6 + 0x44) * 8)" (( "(") (binary_expression "iVar25 + *(int *)(iVar6 + 0x44) * 8" (identifier "iVar25") (+ "+") (binary_expression "*(int *)(iVar6 + 0x44) * 8" (pointer_expression "*(int *)(iVar6 + 0x44)" (* "*") (cast_expression "(int *)(iVar6 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x44)" (( "(") (binary_expression "iVar6 + 0x44" (identifier "iVar6") (+ "+") (number_literal "0x44")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "dVar2")) (; ";")) (} "}")))) (expression_statement "local_d4 = local_d4 + 1;" (assignment_expression "local_d4 = local_d4 + 1" (identifier "local_d4") (= "=") (binary_expression "local_d4 + 1" (identifier "local_d4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar25 = iVar25 + iVar7 * 8;" (assignment_expression "iVar25 = iVar25 + iVar7 * 8" (identifier "iVar25") (= "=") (binary_expression "iVar25 + iVar7 * 8" (identifier "iVar25") (+ "+") (binary_expression "iVar7 * 8" (identifier "iVar7") (* "*") (number_literal "8")))) (; ";")) (if_statement "if (local_d4 == iVar19) goto LAB_00261b09;" (if "if") (parenthesized_expression "(local_d4 == iVar19)" (( "(") (binary_expression "local_d4 == iVar19" (identifier "local_d4") (== "==") (identifier "iVar19")) () ")")) (goto_statement "goto LAB_00261b09;" (goto "goto") (statement_identifier "LAB_00261b09") (; ";"))) (goto_statement "goto LAB_002618c8;" (goto "goto") (statement_identifier "LAB_002618c8") (; ";")) (labeled_statement "LAB_00261e48:\n  DestroyQuantizeInfo(piVar15);" (statement_identifier "LAB_00261e48") (: ":") (expression_statement "DestroyQuantizeInfo(piVar15);" (call_expression "DestroyQuantizeInfo(piVar15)" (identifier "DestroyQuantizeInfo") (argument_list "(piVar15)" (( "(") (identifier "piVar15") () ")"))) (; ";"))) (expression_statement "CloseBlob(param_2);" (call_expression "CloseBlob(param_2)" (identifier "CloseBlob") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" (identifier "iVar14") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00260565;" (goto "goto") (statement_identifier "LAB_00260565") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */
/* 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)

{
  char *var_72;
  double var_36;
  double var_40;
  int var_91;
  type_5 *pPVar5;
  type_6 *var_33;
  type_7 var_31;
  type_8 *var_51;
  type_3 *pIVar9;
  type_9 var_69;
  type_10 var_37;
  type_1 var_9;
  type_11 *quantize_info;
  size_t sVar12;
  size_t var_14;
  char *var_53;
  type_12 *var_30;
  type_13 var_61;
  type_14 var_58;
  type_3 *var_84;
  type_13 var_57;
  type_13 var_63;
  char *var_73;
  int var_59;
  type_10 (*var_39) [3];
  type_6 *pPVar23;
  int var_38;
  size_t var_67;
  char cVar26;
  type_13 var_62;
  int var_60;
  size_t var_65;
  int var_1;
  bool bVar30;
  type_15 var_85;
  type_16 MVar32;
  type_13 var_45;
  type_17 local_cc;
  type_5 *local_b8;
  char *var_70;
  type_13 local_ac;
  type_13 var_17;
  char *var_64;
  double local_94;
  double var_80;
  double var_79;
  char *var_48;
  char *var_68;
  type_15 var_76;
  type_17 var_81;
  type_13 var_87;
  int var_90;
  type_18 var_21;
  type_10 local_46;
  type_9 var_18;
  char var_66 [8];
  
  var_91 = *(int *)(var_1 + 0x14);
  if (var_2 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("image_info != (const ImageInfo *) NULL","coders/palm.c",0x2ed,"WritePALMImage");
  }
  if (var_2->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,
                  "WritePALMImage");
  }
  if (var_4 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");
  }
  if (var_4->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");
  }
  if (var_4->debug != var_5) {
    var_6(TraceEvent,"coders/palm.c","WritePALMImage",0x2f2,"%s",(char)var_4 + '\x18');
  }
  if (var_7 == (type_4 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");
  }
  if (var_7->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,
                  "WritePALMImage");
  }
  var_9 = var_8(var_2,var_4,WriteBinaryBlobMode,var_7);
  if (var_9 != var_5) {
    quantize_info = var_10(var_2);
    sVar12 = var_11(var_4);
    var_80 = 0.0;
    var_21 = 0;
    var_79 = 0.0;
    local_46 = '\0';
    local_94 = 0.0;
    var_87 = 0;
    var_90 = 0;
    var_76 = 0;
    do {
      var_12(var_4,sRGBColorspace,var_7);
      var_14 = var_13(var_4,(type_19 *)0x0,var_7);
      var_17 = 1;
      if (var_14 < 3) {
        var_12(var_4,var_4->colorspace,var_7);
        var_17 = 1;
        var_18 = 1;
LAB_00261df3:
        var_12(var_4,GRAYColorspace,var_7);
        var_15(var_4,PaletteType,var_7);
        var_16(var_4,var_7);
      }
      else {
        do {
          var_17 = var_17 * 2;
          var_18 = (type_9)var_17;
        } while ((type_13)(1 << (var_18 & 0x1f)) < var_14);
        if (var_17 < 0x11) {
          if (var_17 == 0x10) {
            var_18 = 0x10;
          }
          else {
            var_12(var_4,var_4->colorspace,var_7);
            if (var_17 < 8) goto LAB_00261df3;
          }
        }
        else {
          var_17 = 0x10;
          var_18 = 0x10;
        }
      }
      if ((var_4->storage_class == var_19) &&
         ((var_4->colors < 0x101 ||
          (var_20(var_4,DirectClass,var_7), var_4->storage_class == var_19)))
         ) {
        var_21 = var_21 | 0x4000;
      }
      else {
        var_21 = var_21 | 0x400;
      }
      var_22(var_4,(type_18)var_4->columns);
      var_22(var_4,(type_18)var_4->rows);
      var_14 = (int)((type_17)((int)(0x10 / (type_17)var_17) + -1 + var_4->columns) /
                    (0x10 / (type_17)var_17)) * 2;
      var_22(var_4,(type_18)var_14);
      if ((var_2->compression == var_23) || (var_2->compression == var_24)
         ) {
        var_21 = var_21 | 0x8000;
      }
      var_22(var_4,var_21);
      var_25(var_4,(type_9)var_17);
      if (1 < var_17) {
        local_46 = '\x01';
      }
      if ((var_2->compression == var_23) || (var_2->compression == var_24)
         ) {
        local_46 = '\x02';
      }
      var_25(var_4,local_46);
      var_22(var_4,0);
      var_25(var_4,'\0');
      if (var_2->compression == var_23) {
        var_25(var_4,'\x01');
      }
      else if (var_2->compression == var_24) {
        var_25(var_4,'\0');
      }
      else {
        var_25(var_4,0xff);
      }
      var_22(var_4,0);
      if (var_17 == 0x10) {
        var_25(var_4,'\x05');
        var_25(var_4,'\x06');
        var_25(var_4,'\x05');
        var_25(var_4,'\0');
        var_26(var_4,0);
        var_81 = 0x18;
      }
      else {
        var_81 = 0x10;
        if (var_17 == 8) {
          if ((var_21 & 0x4000) == 0) {
            var_84 = var_27(0x100,1,"RGB",CharPixel,PalmPalette,var_7);
            var_12(var_84,var_84->colorspace,var_7);
            var_28(quantize_info,var_4,var_84,var_7);
            if (0 < (int)var_4->rows) {
              var_65 = var_4->columns;
              var_68 = (char *)0x0;
              do {
                var_30 = var_29(var_4,0,(ssize_t)var_68,var_65,1,var_7);
                if (var_30 == (type_12 *)0x0) break;
                var_65 = var_4->columns;
                if (0 < (int)var_65) {
                  var_33 = var_4->colormap;
                  var_45 = 0;
                  pPVar5 = var_4->channel_map;
                  var_67 = var_4->number_channels;
                  var_31 = pPVar5[5].traits;
LAB_002618c8:
                  pPVar23 = var_33;
                  if (var_31 != var_32) {
                    pPVar23 = var_33 + (int)var_34(var_30[pPVar5[5].offset]);
                  }
                  var_36 = pPVar23->red;
                  if (var_35(var_36)) {
                    var_38 = 0;
                    var_39 = PalmPalette;
                    do {
                      if ((*var_39)[0] == '\0') {
                        var_37 = '\0';
                        if (0.0 < pPVar23->green) {
                          var_36 = pPVar23->green / (double)DAT_002e814c;
                          var_37 = 0xff;
                          if (var_36 < (double)DAT_002e8150) {
                            var_37 = (type_10)(short)var_34(var_36 + (double)DAT_002df2b8);
                          }
                        }
                        if ((*var_39)[1] == var_37) {
                          var_37 = '\0';
                          if (0.0 < pPVar23->blue) {
                            var_36 = pPVar23->blue / (double)DAT_002e814c;
                            var_37 = 0xff;
                            if (var_36 < (double)DAT_002e8150) {
                              var_37 = (type_10)(short)var_34(var_36 + (double)DAT_002df2b8);
                            }
                          }
                          if ((*var_39)[2] == var_37) goto LAB_00261ad3;
                        }
                      }
                      var_38 = var_38 + 1;
                      var_39 = var_39 + 1;
                    } while (var_38 != 0x100);
                  }
                  else if (var_36 <= 0.0) {
                    var_38 = 0;
                    var_39 = PalmPalette;
                    do {
                      if ((*var_39)[0] == '\0') {
                        var_37 = '\0';
                        if (0.0 < pPVar23->green) {
                          var_36 = pPVar23->green / (double)DAT_002e814c;
                          var_37 = 0xff;
                          if (var_36 < (double)DAT_002e8150) {
                            var_37 = (type_10)(short)var_34(var_36 + (double)DAT_002df2b8);
                          }
                        }
                        if ((*var_39)[1] == var_37) {
                          var_37 = '\0';
                          if (0.0 < pPVar23->blue) {
                            var_36 = pPVar23->blue / (double)DAT_002e814c;
                            var_37 = 0xff;
                            if (var_36 < (double)DAT_002e8150) {
                              var_37 = (type_10)(short)var_34(var_36 + (double)DAT_002df2b8);
                            }
                          }
                          if ((*var_39)[2] == var_37) goto LAB_00261ad3;
                        }
                      }
                      var_38 = var_38 + 1;
                      var_39 = var_39 + 1;
                    } while (var_38 != 0x100);
                  }
                  else {
                    var_38 = 0;
                    var_39 = PalmPalette;
                    do {
                      var_37 = 0xff;
                      if (var_36 / (double)DAT_002e814c < (double)DAT_002e8150) {
                        var_37 = (type_10)(short)var_34(var_36 / (double)DAT_002e814c +
                                                     (double)DAT_002df2b8);
                      }
                      if ((*var_39)[0] == var_37) {
                        var_37 = '\0';
                        if (0.0 < pPVar23->green) {
                          var_40 = pPVar23->green / (double)DAT_002e814c;
                          var_37 = 0xff;
                          if (var_40 < (double)DAT_002e8150) {
                            var_37 = (type_10)(short)var_34(var_40 + (double)DAT_002df2b8);
                          }
                        }
                        if ((*var_39)[1] == var_37) {
                          var_37 = '\0';
                          if (0.0 < pPVar23->blue) {
                            var_40 = pPVar23->blue / (double)DAT_002e814c;
                            var_37 = 0xff;
                            if (var_40 < (double)DAT_002e8150) {
                              var_37 = (type_10)(short)var_34(var_40 + (double)DAT_002df2b8);
                            }
                          }
                          if ((*var_39)[2] == var_37) goto LAB_00261ad3;
                        }
                      }
                      var_38 = var_38 + 1;
                      var_39 = var_39 + 1;
                    } while (var_38 != 0x100);
                  }
                  var_36 = -1.0;
                  goto LAB_00261adb;
                }
LAB_00261b09:
                var_68 = (char *)((int)var_68 + 1);
              } while ((int)var_68 < (int)var_4->rows);
            }
            var_41(var_84);
            var_81 = 0x10;
          }
          else {
            var_9 = var_42(var_4,var_7);
            quantize_info->dither_method = (var_9 == var_5) + var_43;
            quantize_info->number_colors = var_4->colors;
            var_44(quantize_info,var_4,var_7);
            var_22(var_4,(type_18)var_4->colors);
            if (var_4->colors == 0) {
              var_81 = 0x12;
            }
            else {
              var_38 = 0;
              var_45 = 0;
              do {
                var_25(var_4,(type_10)var_45);
                var_36 = *(double *)((int)&var_4->colormap->red + var_38);
                var_37 = '\0';
                if (0.0 < var_36) {
                  var_36 = var_36 / (double)DAT_002e814c;
                  var_37 = 0xff;
                  if (var_36 < (double)DAT_002e8150) {
                    var_37 = (type_10)(short)var_34(var_36 + (double)DAT_002df2b8);
                  }
                }
                var_25(var_4,var_37);
                var_36 = *(double *)((int)&var_4->colormap->green + var_38);
                var_37 = '\0';
                if (0.0 < var_36) {
                  var_36 = var_36 / (double)DAT_002e814c;
                  var_37 = 0xff;
                  if (var_36 < (double)DAT_002e8150) {
                    var_37 = (type_10)(short)var_34(var_36 + (double)DAT_002df2b8);
                  }
                }
                var_25(var_4,var_37);
                var_36 = *(double *)((int)&var_4->colormap->blue + var_38);
                var_37 = '\0';
                if (0.0 < var_36) {
                  var_36 = var_36 / (double)DAT_002e814c;
                  var_37 = 0xff;
                  if (var_36 < (double)DAT_002e8150) {
                    var_37 = (type_10)(short)var_34(var_36 + (double)DAT_002df2b8);
                  }
                }
                var_38 = var_38 + 0x50;
                var_25(var_4,var_37);
                var_45 = var_45 + 1;
              } while (var_45 < var_4->colors);
              var_81 = (type_17)var_46(0xffffffef < var_45 * 4 + 2,var_45 * 4 + 0x12);
            }
          }
        }
      }
      if ((short)var_21 < 0) {
        var_22(var_4,0);
      }
      var_48 = (char *)0x0;
      var_84 = var_4;
      if ((var_2->compression == var_24) &&
         (var_48 = (char *)var_47(var_14 + 0x100,1), var_48 == (char *)0x0)) {
        var_49(quantize_info);
        var_50
                  (var_7,"coders/palm.c","WritePALMImage",0x376,ErrorException,
                   "MemoryAllocationFailed","`%s\'",0x6e,var_4->filename);
        var_51 = (type_8 *)var_2->adjoin;
        while (pIVar9 = var_4, var_51 != (type_8 *)0x0) {
          var_51 = pIVar9->previous;
          var_4 = var_51;
          var_84 = pIVar9;
        }
LAB_0026128c:
        var_52(var_84);
        var_9 = var_5;
        break;
      }
      var_53 = (char *)var_47(var_14 + 0x100,1);
      if (var_53 == (char *)0x0) {
        if (var_48 != (char *)0x0) {
          var_54(var_48);
        }
        var_49(quantize_info);
        var_50
                  (var_7,"coders/palm.c","WritePALMImage",0x380,ErrorException,
                   "MemoryAllocationFailed","`%s\'",0x6e,var_4->filename);
        var_51 = (type_8 *)var_2->adjoin;
        while (pIVar9 = var_4, var_51 != (type_8 *)0x0) {
          var_51 = pIVar9->previous;
          var_4 = var_51;
          var_84 = pIVar9;
        }
        goto LAB_0026128c;
      }
      if (0 < (int)var_4->rows) {
        var_38 = 0;
        do {
          var_55(var_53,0,var_14);
          var_30 = var_56(var_4,0,var_38,var_4->columns,1,var_7);
          if (var_30 == (type_12 *)0x0) break;
          local_ac = var_4->columns;
          if (var_17 == 0x10) {
            if ((int)local_ac < 1) goto LAB_0026097b;
            local_b8 = (type_5 *)0x0;
            do {
              pPVar5 = var_4->channel_map;
              var_57 = (((int)var_34(var_30[pPVar5[1].offset]) * 0x3f) / 0xffff) * 0x20 |
                       (((int)var_34(var_30[pPVar5->offset]) * 0x1f) / 0xffff) * 0x800 |
                       ((int)var_34(var_30[pPVar5[2].offset]) * 0x1f) / 0xffff;
              if ((pPVar5[4].traits != var_32) && (var_30[pPVar5[4].offset] == 0.0)) {
                var_21 = var_21 | 0x2000;
                local_94 = var_30[pPVar5->offset];
                var_80 = var_30[pPVar5[2].offset];
                var_79 = var_30[pPVar5[1].offset];
              }
              var_53[(int)local_b8 * 2] = (char)(var_57 >> 8);
              var_53[(int)local_b8 * 2 + 1] = (char)var_57;
              local_b8 = (type_5 *)((int)local_b8 + 1);
              var_30 = var_30 + var_4->number_channels;
            } while ((int)local_b8 < (int)var_4->columns);
            var_58 = var_2->compression;
            if (var_58 != var_23) goto LAB_0026098a;
LAB_00260d43:
            if (0 < (int)var_14) {
              var_59 = 0;
              do {
                var_37 = var_53[var_59];
                var_60 = var_59 + 1;
                if (var_37 == var_53[var_59 + 1]) {
                  if ((int)var_14 <= var_60) {
                    var_25(var_4,'\x01');
                    var_25(var_4,var_37);
                    break;
                  }
                  var_57 = 1;
                  do {
                    var_57 = var_57 + 1;
                    var_60 = var_59 + var_57;
                    if (((var_53 + var_59)[var_57] != var_37) || (0xfe < var_57)) break;
                  } while (var_60 < (int)var_14);
                }
                else {
                  var_57 = 1;
                }
                var_25(var_4,(type_10)var_57);
                var_25(var_4,var_37);
                var_59 = var_60;
              } while (var_60 < (int)var_14);
            }
          }
          else {
            var_57 = (type_13)(type_9)(8 - var_18);
            local_b8 = (type_5 *)var_53;
            if ((int)local_ac < 1) {
              cVar26 = '\0';
            }
            else if (var_17 < 8) {
              var_62 = 0;
              var_59 = 0;
              var_63 = var_57;
              do {
                while( true ) {
                  if (var_4->channel_map[5].traits == var_32) {
                    var_36 = 0.0;
                  }
                  else {
                    var_36 = var_30[var_4->channel_map[5].offset];
                  }
                  var_36 = var_36 * (double)((1 << ((type_9)var_17 & 0x1f)) + -1);
                  var_61 = var_4->colors - 1;
                  if (1 < var_61) {
                    local_cc = (type_17)var_61;
                    var_36 = var_36 / (double)local_cc;
                  }
                  var_62 = var_62 | (type_13)(type_9)(short)var_34(var_36) << ((type_9)var_63 & 0x1f);
                  cVar26 = (char)var_62;
                  if (var_63 != 0) break;
                  var_59 = var_59 + 1;
                  *(char *)local_b8 = cVar26;
                  var_30 = var_30 + var_4->number_channels;
                  local_ac = var_4->columns;
                  if ((int)local_ac <= var_59) {
                    cVar26 = '\0';
                    local_b8 = (type_5 *)((int)local_b8 + 1);
                    goto LAB_0026095c;
                  }
                  var_62 = 0;
                  var_63 = var_57;
                  local_b8 = (type_5 *)((int)local_b8 + 1);
                }
                var_59 = var_59 + 1;
                var_30 = var_30 + var_4->number_channels;
                local_ac = var_4->columns;
                var_63 = var_63 - var_17;
              } while (var_59 < (int)local_ac);
            }
            else {
              local_b8 = var_4->channel_map;
              var_62 = 0;
              var_59 = 0;
              var_63 = var_57;
              var_64 = var_53;
              do {
                while( true ) {
                  if (local_b8[5].traits != var_32) {
                    var_62 = var_62 | (type_13)(type_9)(short)var_34(var_30[local_b8[5].offset]) <<
                                      ((type_9)var_63 & 0x1f);
                  }
                  cVar26 = (char)var_62;
                  if (var_63 != 0) break;
                  var_59 = var_59 + 1;
                  *var_64 = cVar26;
                  local_ac = var_4->columns;
                  var_30 = var_30 + var_4->number_channels;
                  if ((int)local_ac <= var_59) {
                    cVar26 = '\0';
                    local_b8 = (type_5 *)(var_64 + 1);
                    goto LAB_0026095c;
                  }
                  local_b8 = var_4->channel_map;
                  var_62 = 0;
                  var_63 = var_57;
                  var_64 = var_64 + 1;
                }
                var_59 = var_59 + 1;
                var_30 = var_30 + var_4->number_channels;
                var_63 = var_63 - var_17;
              } while (var_59 < (int)local_ac);
              local_b8 = (type_5 *)var_64;
            }
LAB_0026095c:
            if ((int)((type_17)local_ac % (8 / (type_17)var_17)) != 0) {
              *(char *)local_b8 = cVar26;
            }
LAB_0026097b:
            var_58 = var_2->compression;
            if (var_58 == var_23) goto LAB_00260d43;
LAB_0026098a:
            if (var_58 == var_24) {
              if (0 < (int)var_14) {
                var_73 = var_53;
                var_65 = var_14;
                var_72 = var_48;
                do {
                  var_67 = 8;
                  if ((int)var_65 < 9) {
                    var_67 = var_65;
                  }
                  if (var_38 == 0) {
                    var_66[0] = *var_73;
                    if (var_65 == 1) {
                      var_69 = 0x80;
                    }
                    else {
                      var_66[1] = var_73[1];
                      if (var_65 == 2) {
                        var_69 = 0xc0;
                      }
                      else {
                        var_66[2] = var_73[2];
                        if (var_65 == 3) {
                          var_69 = 0xe0;
                        }
                        else {
                          var_66[3] = var_73[3];
                          if (var_65 == 4) {
                            var_69 = 0xf0;
                          }
                          else {
                            var_66[4] = var_73[4];
                            if (var_65 == 5) {
                              var_69 = 0xf8;
                            }
                            else {
                              var_66[5] = var_73[5];
                              if (var_65 == 6) {
                                var_69 = 0xfc;
                              }
                              else {
                                var_66[6] = var_73[6];
                                if ((int)var_65 < 8) {
                                  var_69 = 0xfe;
                                }
                                else {
                                  var_66[7] = var_73[7];
                                  var_69 = 0xff;
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                    var_68 = var_66 + var_67;
                  }
                  else {
                    if (*var_73 == *var_72) {
                      var_69 = 0;
                      var_68 = var_66;
                    }
                    else {
                      var_69 = 0x80;
                      var_68 = var_66 + 1;
                      var_66[0] = *var_73;
                    }
                    if (var_65 != 1) {
                      var_70 = var_68;
                      if (var_72[1] != var_73[1]) {
                        var_70 = var_68 + 1;
                        var_69 = var_69 | 0x40;
                        *var_68 = var_73[1];
                      }
                      var_68 = var_70;
                      if (var_65 != 2) {
                        if (var_72[2] != var_73[2]) {
                          var_69 = var_69 | 0x20;
                          var_68 = var_70 + 1;
                          *var_70 = var_73[2];
                        }
                        if (var_65 != 3) {
                          var_70 = var_68;
                          if (var_72[3] != var_73[3]) {
                            var_70 = var_68 + 1;
                            var_69 = var_69 | 0x10;
                            *var_68 = var_73[3];
                          }
                          var_68 = var_70;
                          if (var_65 != 4) {
                            if (var_72[4] != var_73[4]) {
                              var_69 = var_69 | 8;
                              var_68 = var_70 + 1;
                              *var_70 = var_73[4];
                            }
                            if (var_65 != 5) {
                              var_70 = var_68;
                              if (var_72[5] != var_73[5]) {
                                var_70 = var_68 + 1;
                                var_69 = var_69 | 4;
                                *var_68 = var_73[5];
                              }
                              var_68 = var_70;
                              if (var_65 != 6) {
                                if (var_72[6] != var_73[6]) {
                                  var_69 = var_69 | 2;
                                  var_68 = var_70 + 1;
                                  *var_70 = var_73[6];
                                }
                                if ((7 < (int)var_65) && (var_72[7] != var_73[7])) {
                                  var_69 = var_69 | 1;
                                  *var_68 = var_73[7];
                                  var_68 = var_68 + 1;
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                  var_65 = var_65 - 8;
                  var_25(var_4,var_69);
                  var_71(var_4,(int)var_68 - (int)var_66,var_66);
                  var_72 = var_72 + 8;
                  var_73 = var_73 + 8;
                } while ((var_14 - 8) - (var_14 - 1 & 0xfffffff8) != var_65);
              }
              var_74(var_48,var_53,var_14);
            }
            else {
              var_71(var_4,var_14,var_53);
            }
          }
          var_38 = var_38 + 1;
        } while (var_38 < (int)var_4->rows);
      }
      if ((var_21 & 0x2000) != 0) {
        var_75(var_4,var_76 + 6,0);
        var_22(var_4,var_21);
        var_81 = var_75(var_4,var_76 + 0xc,0);
        var_25(var_4,'\0');
      }
      if (var_17 == 0x10) {
        var_81 = var_75(var_4,var_76 + 0x14,0);
        var_25(var_4,'\0');
        var_36 = (double)var_77;
        var_40 = (double)var_78;
        var_25(var_4,(type_10)(short)var_34(((float)local_94 * var_77) / var_78));
        var_25(var_4,(type_10)(short)var_34((var_79 * (double)DAT_0030d3a4) / var_40));
        var_25(var_4,(type_10)(short)var_34((var_36 * var_80) / var_40));
      }
      if ((short)var_21 < 0) {
        MVar32 = var_75(var_4,var_76 + var_81,0);
        var_85 = var_82(var_4);
        var_22(var_4,((short)var_85 - (short)var_76) - (short)MVar32);
      }
      var_54(var_53);
      if (var_48 != (char *)0x0) {
        var_54(var_48);
      }
      var_84 = var_83(var_4);
      if (var_84 == (type_3 *)0x0) goto LAB_00261e48;
      var_85 = var_82(var_4);
      var_57 = (type_13)var_85 & 3;
      var_38 = 0;
      if ((var_85 & 3) != 0) {
        do {
          var_25(var_4,'\0');
          bVar30 = var_57 != 0;
          var_57 = var_57 - 1;
          var_38 = var_38 + -1 + (type_13)bVar30;
        } while (var_38 != 0 || var_57 != 0);
      }
      var_75(var_4,var_76 + 10,0);
      var_85 = var_82(var_4);
      var_22(var_4,(type_18)((type_13)(var_85 - var_76) >> 2));
      var_76 = var_82(var_4);
      var_75(var_4,var_76,0);
      var_4 = var_86(var_4);
      bVar30 = 0xfffffffe < var_87;
      var_9 = var_88(var_4,"Save/Images",var_89(var_90,var_87),(type_17)sVar12);
      if ((var_9 == var_5) ||
         (var_87 = var_87 + 1, var_90 = var_90 + (type_13)bVar30,
         var_2->adjoin == var_5)) goto LAB_00261e48;
    } while( true );
  }
LAB_00260565:
  if (var_91 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_92();
  }
  return var_9;
LAB_00261ad3:
  var_36 = (double)var_38;
LAB_00261adb:
  if (var_31 != var_32) {
    var_30[pPVar5[5].offset] = var_36;
  }
  var_45 = var_45 + 1;
  var_30 = var_30 + var_67;
  if (var_45 == var_65) goto LAB_00261b09;
  goto LAB_002618c8;
LAB_00261e48:
  var_49(quantize_info);
  var_52(var_4);
  var_9 = MagickTrue;
  goto LAB_00260565;
}


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

/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

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

{
  char *pcVar1;
  double dVar2;
  double dVar3;
  double dVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int *piVar9;
  byte bVar10;
  undefined1 uVar11;
  short sVar12;
  short sVar13;
  int iVar14;
  int *piVar15;
  undefined4 uVar16;
  uint uVar17;
  char *pcVar18;
  int iVar19;
  int iVar20;
  uint uVar21;
  int iVar22;
  uint uVar23;
  char *pcVar24;
  int iVar25;
  int iVar26;
  char cVar27;
  uint uVar28;
  int *piVar29;
  int in_GS_OFFSET;
  bool bVar30;
  longlong lVar31;
  longlong lVar32;
  uint local_d4;
  ulonglong local_cc;
  char *local_b8;
  byte local_b4;
  char *local_b0;
  uint local_ac;
  uint local_a0;
  char *local_9c;
  double local_94;
  double local_8c;
  double local_84;
  char *local_7c;
  char *local_78;
  int local_74;
  int local_64;
  uint local_60;
  uint local_54;
  int local_50;
  ushort local_48;
  undefined1 local_46;
  byte local_45;
  char local_28 [4];
  char local_24;
  char local_23;
  char local_22;
  char local_21;
  int local_20;
  
  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/palm.c",0x2ed,"WritePALMImage");
  }
  if (param_1[0xc7d] != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image_info->signature == MagickCoreSignature","coders/palm.c",0x2ee,
                  "WritePALMImage");
  }
  if (param_2 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","coders/palm.c",0x2ef,"WritePALMImage");
  }
  if (param_2[0xcd1] != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","coders/palm.c",0x2f0,"WritePALMImage");
  }
  if (param_2[0xcca] != 0) {
    LogMagickEvent(0x8000,"coders/palm.c","WritePALMImage",0x2f2,&DAT_002f75ae,param_2 + 0xc6);
  }
  if (param_3 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception != (ExceptionInfo *) NULL","coders/palm.c",0x2f3,"WritePALMImage");
  }
  if (*(int *)(param_3 + 0x1c) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("exception->signature == MagickCoreSignature","coders/palm.c",0x2f4,
                  "WritePALMImage");
  }
  uVar21 = param_3;
  iVar14 = OpenBlob(param_1,param_2,4,param_3);
  if (iVar14 != 0) {
    piVar15 = (int *)AcquireQuantizeInfo(param_1);
    uVar16 = GetImageListLength(param_2);
    local_8c = 0.0;
    local_48 = 0;
    local_84 = 0.0;
    local_46 = 0;
    local_94 = 0.0;
    local_54 = 0;
    local_50 = 0;
    lVar31 = 0;
    do {
      local_74 = (int)lVar31;
      iVar14 = local_74;
      TransformImageColorspace(param_2,0x17,param_3);
      uVar17 = GetNumberColors(param_2,0,param_3);
      local_a0 = 1;
      if (uVar17 < 3) {
        TransformImageColorspace(param_2,param_2[1],param_3);
        local_a0 = 1;
        local_45 = 1;
LAB_00261df3:
        TransformImageColorspace(param_2,3,param_3,uVar21);
        SetImageType(param_2,4,param_3);
        SortColormapByIntensity(param_2,param_3);
      }
      else {
        do {
          local_a0 = local_a0 * 2;
          local_45 = (byte)local_a0;
        } while ((uint)(1 << (local_45 & 0x1f)) < uVar17);
        if (local_a0 < 0x11) {
          if (local_a0 == 0x10) {
            local_45 = 0x10;
          }
          else {
            uVar21 = local_a0;
            TransformImageColorspace(param_2,param_2[1],param_3,local_a0);
            if (local_a0 < 8) goto LAB_00261df3;
          }
        }
        else {
          local_a0 = 0x10;
          local_45 = 0x10;
        }
      }
      if ((*param_2 == 2) &&
         (((uint)param_2[9] < 0x101 || (SetImageStorageClass(param_2,1,param_3), *param_2 == 2)))) {
        local_48 = local_48 | 0x4000;
      }
      else {
        local_48 = local_48 | 0x400;
      }
      WriteBlobMSBShort(param_2,(short)param_2[6]);
      WriteBlobMSBShort(param_2,(short)param_2[7]);
      uVar21 = (int)((ulonglong)(uint)((int)(0x10 / (ulonglong)local_a0) + -1 + param_2[6]) /
                    (0x10 / (ulonglong)local_a0)) * 2;
      WriteBlobMSBShort(param_2,uVar21 & 0xffff);
      if ((*param_1 == 0x13) || (*param_1 == 7)) {
        local_48 = local_48 | 0x8000;
      }
      WriteBlobMSBShort(param_2,local_48);
      WriteBlobByte(param_2,local_a0);
      if (1 < local_a0) {
        local_46 = 1;
      }
      if ((*param_1 == 0x13) || (*param_1 == 7)) {
        local_46 = 2;
      }
      WriteBlobByte(param_2,local_46);
      WriteBlobMSBShort(param_2,0);
      WriteBlobByte(param_2,0);
      if (*param_1 == 0x13) {
        WriteBlobByte(param_2,1);
      }
      else if (*param_1 == 7) {
        WriteBlobByte(param_2,0);
      }
      else {
        WriteBlobByte(param_2,0xff);
      }
      WriteBlobMSBShort(param_2,0);
      if (local_a0 == 0x10) {
        WriteBlobByte(param_2,5);
        WriteBlobByte(param_2,6);
        WriteBlobByte(param_2,5);
        WriteBlobByte(param_2,0);
        WriteBlobMSBLong(param_2,0);
        local_64 = 0x18;
LAB_002607b8:
        local_60 = 0;
      }
      else {
        local_64 = 0x10;
        if (local_a0 != 8) goto LAB_002607b8;
        if ((local_48 & 0x4000) == 0) {
          iVar20 = ConstituteImage(0x100,1,"RGB",1,&DAT_00344940,param_3);
          TransformImageColorspace(iVar20,*(undefined4 *)(iVar20 + 4),param_3);
          RemapImage(piVar15,param_2,iVar20,param_3);
          if (0 < param_2[7]) {
            iVar19 = param_2[6];
            local_78 = (char *)0x0;
            do {
              iVar25 = GetAuthenticPixels(param_2,0,local_78,iVar19,1,param_3);
              if (iVar25 == 0) break;
              iVar19 = param_2[6];
              if (0 < iVar19) {
                iVar5 = param_2[10];
                local_d4 = 0;
                iVar6 = param_2[0xaa];
                iVar7 = param_2[0xa6];
                iVar8 = *(int *)(iVar6 + 0x40);
LAB_002618c8:
                iVar26 = iVar5;
                if (iVar8 != 0) {
                  iVar26 = (int)ROUND(*(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8)) * 0x50 +
                           iVar5;
                }
                dVar2 = *(double *)(iVar26 + 0x20);
                if (NAN(dVar2)) {
                  iVar22 = 0;
                  pcVar18 = &DAT_00344940;
                  do {
                    if (*pcVar18 == '\0') {
                      cVar27 = '\0';
                      if (0.0 < *(double *)(iVar26 + 0x28)) {
                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;
                        cVar27 = -1;
                        if (dVar2 < (double)DAT_002e8150) {
                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                        }
                      }
                      if (pcVar18[1] == cVar27) {
                        cVar27 = '\0';
                        if (0.0 < *(double *)(iVar26 + 0x30)) {
                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;
                          cVar27 = -1;
                          if (dVar2 < (double)DAT_002e8150) {
                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                          }
                        }
                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;
                      }
                    }
                    iVar22 = iVar22 + 1;
                    pcVar18 = pcVar18 + 3;
                  } while (iVar22 != 0x100);
                }
                else if (dVar2 <= 0.0) {
                  iVar22 = 0;
                  pcVar18 = &DAT_00344940;
                  do {
                    if (*pcVar18 == '\0') {
                      cVar27 = '\0';
                      if (0.0 < *(double *)(iVar26 + 0x28)) {
                        dVar2 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;
                        cVar27 = -1;
                        if (dVar2 < (double)DAT_002e8150) {
                          cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                        }
                      }
                      if (pcVar18[1] == cVar27) {
                        cVar27 = '\0';
                        if (0.0 < *(double *)(iVar26 + 0x30)) {
                          dVar2 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;
                          cVar27 = -1;
                          if (dVar2 < (double)DAT_002e8150) {
                            cVar27 = (char)(short)ROUND(dVar2 + (double)DAT_002df2b8);
                          }
                        }
                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;
                      }
                    }
                    iVar22 = iVar22 + 1;
                    pcVar18 = pcVar18 + 3;
                  } while (iVar22 != 0x100);
                }
                else {
                  iVar22 = 0;
                  pcVar18 = &DAT_00344940;
                  do {
                    cVar27 = -1;
                    if (dVar2 / (double)DAT_002e814c < (double)DAT_002e8150) {
                      cVar27 = (char)(short)ROUND(dVar2 / (double)DAT_002e814c +
                                                  (double)DAT_002df2b8);
                    }
                    if (*pcVar18 == cVar27) {
                      cVar27 = '\0';
                      if (0.0 < *(double *)(iVar26 + 0x28)) {
                        dVar4 = *(double *)(iVar26 + 0x28) / (double)DAT_002e814c;
                        cVar27 = -1;
                        if (dVar4 < (double)DAT_002e8150) {
                          cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);
                        }
                      }
                      if (pcVar18[1] == cVar27) {
                        cVar27 = '\0';
                        if (0.0 < *(double *)(iVar26 + 0x30)) {
                          dVar4 = *(double *)(iVar26 + 0x30) / (double)DAT_002e814c;
                          cVar27 = -1;
                          if (dVar4 < (double)DAT_002e8150) {
                            cVar27 = (char)(short)ROUND(dVar4 + (double)DAT_002df2b8);
                          }
                        }
                        if (pcVar18[2] == cVar27) goto LAB_00261ad3;
                      }
                    }
                    iVar22 = iVar22 + 1;
                    pcVar18 = pcVar18 + 3;
                  } while (iVar22 != 0x100);
                }
                dVar2 = -1.0;
                goto LAB_00261adb;
              }
LAB_00261b09:
              local_78 = (char *)((int)local_78 + 1);
            } while ((int)local_78 < param_2[7]);
          }
          DestroyImage(iVar20);
          local_64 = 0x10;
          goto LAB_002607b8;
        }
        iVar20 = IdentifyPaletteImage(param_2,param_3);
        piVar15[3] = (iVar20 == 0) + 1;
        *piVar15 = param_2[9];
        QuantizeImage(piVar15,param_2,param_3);
        WriteBlobMSBShort(param_2,(short)param_2[9]);
        if (param_2[9] == 0) {
          local_64 = 0x12;
          goto LAB_002607b8;
        }
        iVar20 = 0;
        local_d4 = 0;
        do {
          WriteBlobByte(param_2,local_d4 & 0xff);
          dVar2 = *(double *)(param_2[10] + 0x20 + iVar20);
          uVar11 = 0;
          if (0.0 < dVar2) {
            dVar2 = dVar2 / (double)DAT_002e814c;
            uVar11 = 0xff;
            if (dVar2 < (double)DAT_002e8150) {
              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);
            }
          }
          WriteBlobByte(param_2,uVar11);
          dVar2 = *(double *)(param_2[10] + 0x28 + iVar20);
          uVar11 = 0;
          if (0.0 < dVar2) {
            dVar2 = dVar2 / (double)DAT_002e814c;
            uVar11 = 0xff;
            if (dVar2 < (double)DAT_002e8150) {
              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);
            }
          }
          WriteBlobByte(param_2,uVar11);
          dVar2 = *(double *)(param_2[10] + 0x30 + iVar20);
          uVar11 = 0;
          if (0.0 < dVar2) {
            dVar2 = dVar2 / (double)DAT_002e814c;
            uVar11 = 0xff;
            if (dVar2 < (double)DAT_002e8150) {
              uVar11 = (undefined1)(short)ROUND(dVar2 + (double)DAT_002df2b8);
            }
          }
          iVar20 = iVar20 + 0x50;
          WriteBlobByte(param_2,uVar11);
          local_d4 = local_d4 + 1;
        } while (local_d4 < (uint)param_2[9]);
        local_64 = local_d4 * 4 + 0x12;
        local_60 = (uint)(0xffffffef < local_d4 * 4 + 2);
      }
      lVar32 = CONCAT44(local_60,local_64);
      if ((short)local_48 < 0) {
        WriteBlobMSBShort(param_2,0);
      }
      local_7c = (char *)0x0;
      piVar29 = param_2;
      if ((*param_1 == 7) &&
         (local_7c = (char *)AcquireQuantumMemory(uVar21 + 0x100,1), local_7c == (char *)0x0)) {
        DestroyQuantizeInfo(piVar15);
        ThrowMagickException
                  (param_3,"coders/palm.c","WritePALMImage",0x376,400,"MemoryAllocationFailed",
                   "`%s\'",param_2 + 0xc6);
        piVar15 = (int *)param_1[3];
        while (piVar9 = param_2, piVar15 != (int *)0x0) {
          piVar15 = (int *)piVar9[0xccf];
          param_2 = piVar15;
          piVar29 = piVar9;
        }
LAB_0026128c:
        CloseBlob(piVar29);
        iVar14 = 0;
        break;
      }
      pcVar18 = (char *)AcquireQuantumMemory(uVar21 + 0x100,1);
      if (pcVar18 == (char *)0x0) {
        if (local_7c != (char *)0x0) {
          RelinquishMagickMemory(local_7c);
        }
        DestroyQuantizeInfo(piVar15);
        ThrowMagickException
                  (param_3,"coders/palm.c","WritePALMImage",0x380,400,"MemoryAllocationFailed",
                   "`%s\'",param_2 + 0xc6);
        piVar15 = (int *)param_1[3];
        while (piVar9 = param_2, piVar15 != (int *)0x0) {
          piVar15 = (int *)piVar9[0xccf];
          param_2 = piVar15;
          piVar29 = piVar9;
        }
        goto LAB_0026128c;
      }
      if (0 < param_2[7]) {
        local_b4 = (byte)local_a0;
        iVar20 = 0;
        do {
          memset(pcVar18,0,uVar21);
          iVar19 = GetVirtualPixels(param_2,0,iVar20,param_2[6],1,param_3);
          if (iVar19 == 0) break;
          local_ac = param_2[6];
          if (local_a0 == 0x10) {
            if ((int)local_ac < 1) goto LAB_0026097b;
            local_b8 = (char *)0x0;
            do {
              iVar25 = param_2[0xaa];
              dVar2 = *(double *)(iVar19 + *(int *)(iVar25 + 8) * 8);
              dVar4 = *(double *)(iVar19 + *(int *)(iVar25 + 0x14) * 8);
              dVar3 = *(double *)(iVar19 + *(int *)(iVar25 + 0x20) * 8);
              uVar17 = (((int)ROUND(dVar4) * 0x3f) / 0xffff) * 0x20 |
                       (((int)ROUND(dVar2) * 0x1f) / 0xffff) * 0x800 |
                       ((int)ROUND(dVar3) * 0x1f) / 0xffff;
              if ((*(int *)(iVar25 + 0x34) != 0) &&
                 (*(double *)(iVar19 + *(int *)(iVar25 + 0x38) * 8) == 0.0)) {
                local_48 = local_48 | 0x2000;
                local_94 = dVar2;
                local_8c = dVar3;
                local_84 = dVar4;
              }
              pcVar18[(int)local_b8 * 2] = (char)(uVar17 >> 8);
              pcVar18[(int)local_b8 * 2 + 1] = (char)uVar17;
              local_b8 = (char *)((int)local_b8 + 1);
              iVar19 = iVar19 + param_2[0xa6] * 8;
            } while ((int)local_b8 < param_2[6]);
            iVar19 = *param_1;
            if (iVar19 != 0x13) goto LAB_0026098a;
LAB_00260d43:
            if (0 < (int)uVar21) {
              iVar19 = 0;
              do {
                cVar27 = pcVar18[iVar19];
                iVar25 = iVar19 + 1;
                if (cVar27 == pcVar18[iVar19 + 1]) {
                  if ((int)uVar21 <= iVar25) {
                    WriteBlobByte(param_2,1);
                    WriteBlobByte(param_2,cVar27);
                    break;
                  }
                  uVar17 = 1;
                  do {
                    uVar17 = uVar17 + 1;
                    iVar25 = iVar19 + uVar17;
                    if (((pcVar18 + iVar19)[uVar17] != cVar27) || (0xfe < uVar17)) break;
                  } while (iVar25 < (int)uVar21);
                }
                else {
                  uVar17 = 1;
                }
                WriteBlobByte(param_2,uVar17);
                WriteBlobByte(param_2,cVar27);
                iVar19 = iVar25;
              } while (iVar25 < (int)uVar21);
            }
          }
          else {
            uVar17 = (uint)(byte)(8 - local_45);
            local_b8 = pcVar18;
            if ((int)local_ac < 1) {
              cVar27 = '\0';
            }
            else if (local_a0 < 8) {
              uVar28 = 0;
              iVar25 = 0;
              uVar23 = uVar17;
              do {
                while( true ) {
                  if (*(int *)(param_2[0xaa] + 0x40) == 0) {
                    dVar2 = 0.0;
                  }
                  else {
                    dVar2 = *(double *)(iVar19 + *(int *)(param_2[0xaa] + 0x44) * 8);
                  }
                  dVar2 = dVar2 * (double)((1 << (local_b4 & 0x1f)) + -1);
                  if (1 < param_2[9] - 1U) {
                    local_cc = (ulonglong)(param_2[9] - 1U);
                    dVar2 = dVar2 / (double)local_cc;
                  }
                  uVar28 = uVar28 | (uint)(byte)(short)ROUND(dVar2) << ((byte)uVar23 & 0x1f);
                  cVar27 = (char)uVar28;
                  if (uVar23 != 0) break;
                  iVar25 = iVar25 + 1;
                  *local_b8 = cVar27;
                  iVar19 = iVar19 + param_2[0xa6] * 8;
                  local_ac = param_2[6];
                  if ((int)local_ac <= iVar25) {
                    cVar27 = '\0';
                    local_b8 = local_b8 + 1;
                    goto LAB_0026095c;
                  }
                  uVar28 = 0;
                  uVar23 = uVar17;
                  local_b8 = local_b8 + 1;
                }
                iVar25 = iVar25 + 1;
                iVar19 = iVar19 + param_2[0xa6] * 8;
                local_ac = param_2[6];
                uVar23 = uVar23 - local_a0;
              } while (iVar25 < (int)local_ac);
            }
            else {
              local_b8 = (char *)param_2[0xaa];
              uVar28 = 0;
              iVar25 = 0;
              uVar23 = uVar17;
              local_9c = pcVar18;
              do {
                while( true ) {
                  if (*(int *)((int)local_b8 + 0x40) != 0) {
                    uVar28 = uVar28 | (uint)(byte)(short)ROUND(*(double *)
                                                                (iVar19 + *(int *)((int)local_b8 +
                                                                                  0x44) * 8)) <<
                                      ((byte)uVar23 & 0x1f);
                  }
                  cVar27 = (char)uVar28;
                  if (uVar23 != 0) break;
                  iVar25 = iVar25 + 1;
                  *local_9c = cVar27;
                  local_ac = param_2[6];
                  iVar19 = iVar19 + param_2[0xa6] * 8;
                  if ((int)local_ac <= iVar25) {
                    cVar27 = '\0';
                    local_b8 = local_9c + 1;
                    goto LAB_0026095c;
                  }
                  local_b8 = (char *)param_2[0xaa];
                  uVar28 = 0;
                  uVar23 = uVar17;
                  local_9c = local_9c + 1;
                }
                iVar25 = iVar25 + 1;
                iVar19 = iVar19 + param_2[0xa6] * 8;
                uVar23 = uVar23 - local_a0;
              } while (iVar25 < (int)local_ac);
              local_b8 = local_9c;
            }
LAB_0026095c:
            if ((int)((ulonglong)local_ac % (8 / (ulonglong)local_a0)) != 0) {
              *local_b8 = cVar27;
            }
LAB_0026097b:
            iVar19 = *param_1;
            if (iVar19 == 0x13) goto LAB_00260d43;
LAB_0026098a:
            if (iVar19 == 7) {
              if (0 < (int)uVar21) {
                pcVar24 = pcVar18;
                uVar17 = uVar21;
                pcVar1 = local_7c;
                do {
                  uVar23 = 8;
                  if ((int)uVar17 < 9) {
                    uVar23 = uVar17;
                  }
                  if (iVar20 == 0) {
                    local_28[0] = *pcVar24;
                    if (uVar17 == 1) {
                      bVar10 = 0x80;
                    }
                    else {
                      local_28[1] = pcVar24[1];
                      if (uVar17 == 2) {
                        bVar10 = 0xc0;
                      }
                      else {
                        local_28[2] = pcVar24[2];
                        if (uVar17 == 3) {
                          bVar10 = 0xe0;
                        }
                        else {
                          local_28[3] = pcVar24[3];
                          if (uVar17 == 4) {
                            bVar10 = 0xf0;
                          }
                          else {
                            local_24 = pcVar24[4];
                            if (uVar17 == 5) {
                              bVar10 = 0xf8;
                            }
                            else {
                              local_23 = pcVar24[5];
                              if (uVar17 == 6) {
                                bVar10 = 0xfc;
                              }
                              else {
                                local_22 = pcVar24[6];
                                if ((int)uVar17 < 8) {
                                  bVar10 = 0xfe;
                                }
                                else {
                                  local_21 = pcVar24[7];
                                  bVar10 = 0xff;
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                    local_78 = local_28 + uVar23;
                  }
                  else {
                    if (*pcVar24 == *pcVar1) {
                      bVar10 = 0;
                      local_78 = local_28;
                    }
                    else {
                      bVar10 = 0x80;
                      local_78 = local_28 + 1;
                      local_28[0] = *pcVar24;
                    }
                    if (uVar17 != 1) {
                      local_b0 = local_78;
                      if (pcVar1[1] != pcVar24[1]) {
                        local_b0 = local_78 + 1;
                        bVar10 = bVar10 | 0x40;
                        *local_78 = pcVar24[1];
                      }
                      local_78 = local_b0;
                      if (uVar17 != 2) {
                        if (pcVar1[2] != pcVar24[2]) {
                          bVar10 = bVar10 | 0x20;
                          local_78 = local_b0 + 1;
                          *local_b0 = pcVar24[2];
                        }
                        if (uVar17 != 3) {
                          local_b0 = local_78;
                          if (pcVar1[3] != pcVar24[3]) {
                            local_b0 = local_78 + 1;
                            bVar10 = bVar10 | 0x10;
                            *local_78 = pcVar24[3];
                          }
                          local_78 = local_b0;
                          if (uVar17 != 4) {
                            if (pcVar1[4] != pcVar24[4]) {
                              bVar10 = bVar10 | 8;
                              local_78 = local_b0 + 1;
                              *local_b0 = pcVar24[4];
                            }
                            if (uVar17 != 5) {
                              local_b0 = local_78;
                              if (pcVar1[5] != pcVar24[5]) {
                                local_b0 = local_78 + 1;
                                bVar10 = bVar10 | 4;
                                *local_78 = pcVar24[5];
                              }
                              local_78 = local_b0;
                              if (uVar17 != 6) {
                                if (pcVar1[6] != pcVar24[6]) {
                                  bVar10 = bVar10 | 2;
                                  local_78 = local_b0 + 1;
                                  *local_b0 = pcVar24[6];
                                }
                                if ((7 < (int)uVar17) && (pcVar1[7] != pcVar24[7])) {
                                  bVar10 = bVar10 | 1;
                                  *local_78 = pcVar24[7];
                                  local_78 = local_78 + 1;
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                  uVar17 = uVar17 - 8;
                  WriteBlobByte(param_2,bVar10);
                  WriteBlob(param_2,(int)local_78 - (int)local_28,local_28);
                  pcVar1 = pcVar1 + 8;
                  pcVar24 = pcVar24 + 8;
                } while ((uVar21 - 8) - (uVar21 - 1 & 0xfffffff8) != uVar17);
              }
              memcpy(local_7c,pcVar18,uVar21);
            }
            else {
              WriteBlob(param_2,uVar21,pcVar18);
            }
          }
          iVar20 = iVar20 + 1;
        } while (iVar20 < param_2[7]);
      }
      if ((local_48 & 0x2000) != 0) {
        SeekBlob(param_2,lVar31 + 6,0);
        WriteBlobMSBShort(param_2,local_48);
        lVar32 = SeekBlob(param_2,lVar31 + 0xc,0);
        WriteBlobByte(param_2,0);
      }
      if (local_a0 == 0x10) {
        lVar32 = SeekBlob(param_2,lVar31 + 0x14,0);
        WriteBlobByte(param_2,0);
        dVar2 = (double)DAT_00306a38;
        dVar4 = (double)DAT_002df8a8;
        WriteBlobByte(param_2,(char)(short)ROUND(((float)local_94 * DAT_00306a38) / DAT_002df8a8));
        WriteBlobByte(param_2,(char)(short)ROUND((local_84 * (double)DAT_0030d3a4) / dVar4));
        WriteBlobByte(param_2,(char)(short)ROUND((dVar2 * local_8c) / dVar4));
      }
      if ((short)local_48 < 0) {
        sVar12 = SeekBlob(param_2,lVar32 + lVar31,0);
        sVar13 = GetBlobSize(param_2);
        local_74._0_2_ = (short)lVar31;
        WriteBlobMSBShort(param_2,(sVar13 - (short)local_74) - sVar12);
      }
      RelinquishMagickMemory(pcVar18);
      if (local_7c != (char *)0x0) {
        RelinquishMagickMemory(local_7c);
      }
      iVar20 = GetNextImageInList(param_2);
      if (iVar20 == 0) goto LAB_00261e48;
      uVar21 = GetBlobSize(param_2);
      uVar21 = uVar21 & 3;
      iVar20 = 0;
      if (uVar21 != 0) {
        do {
          WriteBlobByte(param_2,0);
          bVar30 = uVar21 != 0;
          uVar21 = uVar21 - 1;
          iVar20 = iVar20 + -1 + (uint)bVar30;
        } while (iVar20 != 0 || uVar21 != 0);
      }
      SeekBlob(param_2,lVar31 + 10,0);
      iVar20 = GetBlobSize(param_2);
      WriteBlobMSBShort(param_2,(uint)(iVar20 - iVar14) >> 2 & 0xffff);
      lVar31 = GetBlobSize(param_2);
      uVar21 = 0;
      SeekBlob(param_2,lVar31);
      param_2 = (int *)SyncNextImageInList(param_2);
      bVar30 = 0xfffffffe < local_54;
      iVar14 = SetImageProgress(param_2,"Save/Images",local_54,local_50,uVar16,0);
      if ((iVar14 == 0) ||
         (local_54 = local_54 + 1, local_50 = local_50 + (uint)bVar30, param_1[3] == 0))
      goto LAB_00261e48;
    } while( true );
  }
LAB_00260565:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_002decd0();
  }
  return iVar14;
LAB_00261ad3:
  dVar2 = (double)iVar22;
LAB_00261adb:
  if (iVar8 != 0) {
    *(double *)(iVar25 + *(int *)(iVar6 + 0x44) * 8) = dVar2;
  }
  local_d4 = local_d4 + 1;
  iVar25 = iVar25 + iVar7 * 8;
  if (local_d4 == iVar19) goto LAB_00261b09;
  goto LAB_002618c8;
LAB_00261e48:
  DestroyQuantizeInfo(piVar15);
  CloseBlob(param_2);
  iVar14 = 1;
  goto LAB_00260565;
}

